Spyder无法导入其他IDE可正常使用的pycryptodome等已安装Python模块
问题场景
- 运行环境:Windows系统,独立安装版Spyder 5.3.1,对应内置Python 3.9.6版本,未使用Anaconda分发版(用于规避Anaconda环境下
input()函数异常问题) - 前置操作:已通过pip安装
pycryptodome、cryptography模块,两个模块在Sublime Text、系统自带IDLE环境中均可正常导入使用 - 故障表现:在Spyder中执行加密模块导入操作时触发报错;已尝试卸载重装对应第三方模块、重装Spyder,经高校讲师协助排查仍未解决
完整报错信息
runfile('[Omitted path and filename].py', wdir='[Omitted path and filename]') Traceback (most recent call last): File "C:\Users\Me\AppData\Local\Programs\Spyder\pkgs\spyder_kernels\py3compat.py", line 356, in compat_exec exec(code, globals, locals) File "[Omitted path and filename].py", line 9, in <module> from Crypto.Cipher import DES ModuleNotFoundError: No module named 'Crypto' Warning It seems you're trying to use a module that doesn't come with our installer. Check this FAQ in our docs to learn how to do this.
故障原因
独立安装版Spyder自带隔离的内置Python运行环境,此前通过系统全局pip安装的第三方包都存放在系统全局Python的包目录下,仅能被调用系统Python的编辑器(Sublime Text、IDLE)识别;Spyder默认读取自身内置环境的包目录,因此找不到对应模块触发报错。
解决方案
- 打开Spyder,在顶部菜单栏找到「工具」选项,点击后选择「Open command prompt(打开命令提示符)」,弹出的命令行窗口会自动定位到Spyder内置Python的环境路径,不会调用系统全局的Python和pip。
- 在弹出的命令行窗口中,依次执行以下安装命令:
pip install pycryptodome pip install cryptography
注意:执行命令时不要手动切换路径,也不要随意添加--user等额外参数
- 如果执行安装命令时提示权限不足,先完全关闭Spyder,右键点击Spyder图标选择「以管理员身份运行」,再重复上述安装步骤即可。
- 安装完成后关闭命令行窗口,点击Spyder控制台上方的「重启内核」按钮,或者完全关闭Spyder后重新打开,再运行代码即可。
验证方式
重启内核后,在Spyder控制台执行import Crypto,无报错输出即代表模块安装成功。
内容的提问来源于stack exchange,提问作者imnotpauleither
相关产品推荐
相关产品推荐

