如何解决 Python 上的“ImportError: DLL load failed:”?

Rom*_*man 8 python ddl pip importerror

最近,ImportError: DLL load failed:当我导入不同的库(例如scikit-learnscipy其他一些库)时,我开始出错。

我的假设是我在尝试 pip install opencv 时破坏了某些东西。

所以,我的问题是如何解决这个似乎不是特定于图书馆的问题?

我可以 pip install DLL 或类似的东西吗?我可以重新安装整个 Python 吗?我在 Windows 上工作。我的 Python 版本是Python 2.7.10 :: Anaconda 2.3.0 (64-bit).

添加

如果我打印sys.path我得到这个:

['',
 'C:\\Anaconda\\Scripts',
 'C:\\Anaconda\\python27.zip',
 'C:\\Anaconda\\DLLs',
 'C:\\Anaconda\\lib',
 'C:\\Anaconda\\lib\\plat-win',
 'C:\\Anaconda\\lib\\lib-tk',
 'C:\\Anaconda',
 'C:\\Anaconda\\lib\\site-packages',
 'C:\\Anaconda\\lib\\site-packages\\Sphinx-1.3.1-py2.7.egg',
 'C:\\Anaconda\\lib\\site-packages\\cryptography-0.9.1-py2.7-win-amd64.egg',
 'C:\\Panda3D-1.9.2-x64',
 'C:\\Panda3D-1.9.2-x64\\bin',
 'C:\\Anaconda\\lib\\site-packages\\win32',
 'C:\\Anaconda\\lib\\site-packages\\win32\\lib',
 'C:\\Anaconda\\lib\\site-packages\\Pythonwin',
 'C:\\Anaconda\\lib\\site-packages\\setuptools-17.1.1-py2.7.egg',
 'C:\\Anaconda\\lib\\site-packages\\IPython\\extensions',
 'C:\\Users\\myname\\.ipython']
Run Code Online (Sandbox Code Playgroud)

让我担心的是 32 和 64 版本的混合。另一件事,也许我只是有不同的 Python,我只需要调用正确的 Python?

sam*_*sam 17

如果有人在 Windows 中遇到此问题Python > 3.8,则仅从受信任的位置加载 dll https://docs.python.org/3/whatsnew/3.8.html#ctypes 这可以通过使用添加 dll 路径来修复os.add_dll_directory("PATH_TO_DLL")

  • 谢谢@sam。这应该是正确答案!为使用 Anaconda/Spyder 的 Python 初学者提供有关如何获取此 DLL 路径的更多详细信息。1) 在 Anaconda CMD 控制台中输入 `echo %path%` 查看 anaconda 的安装位置。2)在spyder的python控制台中,您可以输入命令“import os”,然后按照sam的建议运行“os.add_dll_directory”。我的是:`os.add_dll_directory("C://Users/MYNAME/Anaconda3/DLLs")`。Windows 用户不要忘记将斜杠方向从 \ 更改为 /,并且 : 之后的第一个斜杠需要 2 //。 (6认同)

Rom*_*man 5

我已经通过重新安装Python成功解决了这个问题。首先,我卸载了 Python(与 Windows 中的任何其他程序一样)。然后我安装了 Python 的 Anaconda 发行版。问题不再存在。