我在Windows机器上安装了新的Anaconda和PyCharm。
简单地跑
import numpy
加薪
ImportError: DLL load failed: The specified module could not be found.
在类似的问题(1,2)中,人们建议检查PATH
是否有DLL的路径。就我而言 - 确实如此!但是,当我从PyCharm开始做某事时,我有额外的路径前置于PATH
。我认为这可能是问题所在。
当从Anaconda提示运行时,sys.path
是:
C:\Users\usr\Anaconda3\python37.zip
C:\Users\usr\Anaconda3\DLLs
C:\Users\usr\Anaconda3\lib
C:\Users\usr\Anaconda3
C:\Users\usr\Anaconda3\lib\site-packages
C:\Users\usr\Anaconda3\lib\site-packages\win32
C:\Users\usr\Anaconda3\lib\site-packages\win32\lib
C:\Users\usr\Anaconda3\lib\site-packages\Pythonwin
当在pycharm中从python控制台运行时,sys.path
是相同的,除了现在我们在文件的开头有两个附加行:
C:\Users\usr\AppData\Local\JetBrains\Toolbox\apps\PyCharm-C\ch-0\182.4505.26\helpers\pydev
C:\Users\usr\AppData\Local\JetBrains\Toolbox\apps\PyCharm-C\ch-0\182.4505.26\helpers\pydev
顺便说一下,C:\Users\usr\AppData\Local\JetBrains\Toolbox\apps\PyCharm-C\ch-0\182.4505.26\helpers\pydev\_pydev_bundle\pydev_import_hook.py
提出了初始错误。
所以我认为这找到了问题,但我不知道它为什么会出现,为什么它不会发生在我的其他机器上,更重要的是,如何修复它?
技术数据:
PyCharm 2018.2.4 (Community Edition)
Build #PC-182.4505.26, built on September 19, 2018
JRE: 1.8.0_152-release-1248-b8 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
Python: 3.7, 3.6.6;
numpy: 1.15.4; 1.14.6
这是一个开放的bug;来自Jetbrains问题跟踪器的This answer暂时为我解决了这个问题。
- 打开命令行
- 激活conda venv
- 通过echo%PATH%获取正确的PATH值
- 打开PyCharm并设置新的PATH值 用于设置中的Python控制台|构建,执行,部署|控制台| Python控制台|环境变量 在Run |中运行脚本编辑配置... | |环境变量
UPD:错误修复于2019.1
最后我从pydev找到的是这个解决方法,它就像pycharm,但是从eclipse IDE中作为插件:
“作为一个注释,现在解决方法可以从该shell启动Eclipse,转到相关的解释器并添加'PATH'环境变量以匹配预期运行conda的环境变量(您可以强制特定解释器的环境变量) )“。 Link
对于pycharm,这可能以相同的方式完成,即。从正确的环境中启动pycharm,并显式设置路径变量。