Spyder5老是闪退报错 "Blowfish has been deprecated "的解决方法

发布时间 2023-11-09 09:43:43作者: 莲夜

一、前言

本人在学习python时图省事选择直接安装Anaconda3,用spyder5来进行学习,可是比较蛋疼的是安装完成后spyder5老是闪退无法打开,然后报错如下代码:
C:\Users\xxx\anaconda3\lib\site-packages\paramiko\transport.py:219: CryptographyDeprecationWarning: Blowfish has been deprecated "class": algorithms.Blowfish
一开始我以为是我的python版本和Anaconda3版本之间不兼容导致的,然而在不断重装和试错后发现不是这一回事。

我的运行环境

  1. Anaconda3-2023.07-2-Windows-x86_64
  2. Python311
  3. Win11

二、解读报错

spyder5报的这个错主要是因为新版本的spyder5舍弃了Blowfish这个函数而导致程序启动时扫描到这个函数时报错闪退

三、解决方法

1.网上说的最多的方法。
说是自带的paramiko版本落后更新到最新版本或者就是降级到符合你spyder5版本的库,楼主两种方法都试过了还是无法解决这个问题(还是可以尝试一下的要是更新后能直接使用就别使用后续的步骤了),这里就不放具体步骤了,就是个更新库跟降级库的操作,网上一搜一堆
2. 第二个方法(实测可用)。
就是根据你们报错的C:\Users\xxx\anaconda3\lib\site-packages\paramiko\transport.py:219这个地址,去电脑对应的盘找到对应的文件,如下图

然后用你喜欢的编辑器打开这个文件,找到第219行,找到这个Blowfish的函数,给他注释掉,但是这里一定要注意一个问题!别真的就傻傻的就注释掉219这一行,要像我下面的截图这样把整个BlowFish-cbc函数都注释掉!!!

保存文件后你再打开spyder5会发现还是打不开,还会跳一个报错:
Bad file descriptor (C:\xxx\zeromq_1616055400030\work\src\epoll.cpp:100)
这个报错就很简单就是重装pyzmq就行:

  • 首先,打开 anaconda powershell prompt

  • 然后输入pip uninstall pyzmq 先卸载现有的pyzmq

    系统会问你(Y/n) yes or no, 输入 Y.

  • 卸载成功后再输入 pip install pyzmq 重新安装 pyzmq

四、打开spyder5

然后就可以快乐的打开spyder5了!