【问题标题】:How to resolve "ImportError: DLL load failed:" on Python?如何解决 Python 上的“ImportError: DLL load failed:”?
【发布时间】:2016-12-28 15:51:42
【问题描述】:

最近,当我导入不同的库(例如scikit-learnscipy 等)时,我开始收到ImportError: DLL load failed: 错误。

我的假设是我在尝试 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']

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

【问题讨论】:

  • 我不知道如何让你摆脱这个问题,但如果你开始使用 virtualenv,你将来会限制此类问题的范围..
  • 整个错误信息是什么?
  • 整个错误信息是德语。它告诉类似:ImportError: DLL load failed: the given module is not found.

标签: python pip importerror ddl


【解决方案1】:

如果有人在使用 Windows 的 Python > 3.8 中遇到此问题,则 dll 仅从受信任的位置加载 https://docs.python.org/3/whatsnew/3.8.html#ctypes 这可以通过使用os.add_dll_directory("PATH_TO_DLL")添加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 //.
【解决方案2】:

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

【讨论】:

  • 我在尝试 pip 或使用 jupyter notebook 时遇到了同样的错误( ImportError: DLL load failed )。意识到我有两个版本的 Python(包括 Anaconda 附带的一个)。卸载其他版本的 Python 已经解决了这个问题。谢谢!
  • 我真的不想这样做,但是在挖掘之后我发现我一定是在之前的 32 位 2.7 安装上不小心安装了 64 位 2.7 更新所以我得到了这个 ImportError 但只有在很少使用的模块上。唉,重新安装当然可以解决它。
【解决方案3】:

我刚刚遇到了这个确切的问题并且正在努力解决它。 我试图重新安装 anaconda,我重新安装了相关的软件包,我改变了我的环境 - 但没有任何效果! 最终,几个小时后,我设法通过一些简单的步骤解决了这个问题,如下所述:)

只需在命令行中输入(一次一行代码): conda install numpy 然后 conda install scipy 然后 pip install -U seaborn 然后 pip install -U numpy 最后 pip install -U scipy

就是这样 :) - 现在可以工作了! (它还修复了所有其他库的错误,例如 sklearn、matplotlib 等)

【讨论】:

    【解决方案4】:

    所以我遇到了类似的问题;卸载并重新安装 Anaconda 是我发现修复它的唯一方法。为了删除 Anaconda 及其所有残留文件,我使用了 iobit 卸载软件,您可以在这里下载:

    https://www.iobit.com/en/recommend/iu.php

    【讨论】:

      【解决方案5】:

      我不知道,但我打开了管理员 cmd 如果不知道,只需将鼠标悬停在命令提示符上并右键单击,您将看到以管理员模式打开的选项单击它 只需使用 pip uninstall package_name 卸载,不要关闭,因为 package_will 被缓存,当你再次命令 pip install package_name 它应该可以工作,只是因为它对我有用 LOL 如果你关闭它,你必须重新下载 像 ffpyplayer 是 25 mbs 那么为什么要这样做

      【讨论】:

        【解决方案6】:

        您可以尝试激活环境。激活环境对于使环境中的软件正常运行至关重要。激活需要两个主要功能:将条目添加到环境的 PATH 并运行环境可能包含的任何激活脚本。 (仅适用于 conda 4.6 及更高版本)

        要激活,首先在 cmd 上执行:

        conda activate
        

        那个,也可以在 cmd 上运行 jupyter notebook

        jupyter notebook
        

        当我尝试使用“seaborn”和其他软件包(如 numpy、sklearn 等)时,这对我有用。

        【讨论】:

        • 请不要只发布潜在解决方案的链接。即使无法访问链接,答案也应该始终能够回答问题。
        • 我是新来的,感谢您的建议
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-17
        • 2019-06-02
        • 2016-12-07
        相关资源
        最近更新 更多