【问题标题】:ImportError: DLL load failed when importing Numpy installed in conda virtual environmentImportError:导入安装在 conda 虚拟环境中的 Numpy 时,DLL 加载失败
【发布时间】:2016-08-15 03:42:24
【问题描述】:

在 Windows 中,我使用命令创建了一个 Conda 虚拟环境

conda create -n test python=2.7 pandas scipy matplotlib numpy

创建后,我激活了虚拟环境并进入了 python 解释器。尝试导入 numpy 时,出现以下错误:

>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Anaconda3\envs\test\lib\site-packages\numpy\__init__.py", line 180, in <module>
    from . import add_newdocs
  File "C:\Anaconda3\envs\test\lib\site-packages\numpy\add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "C:\Anaconda3\envs\test\lib\site-packages\numpy\lib\__init__.py", line 8,
 in <module>
    from .type_check import *
  File "C:\Anaconda3\envs\test\lib\site-packages\numpy\lib\type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "C:\Anaconda3\envs\test\lib\site-packages\numpy\core\__init__.py", line 14, in <module>
    from . import multiarray
ImportError: DLL load failed: The specified module could not be found.

有什么想法吗?谢谢!

【问题讨论】:

  • 我执行了你的命令,然后打开了一个 Ipython 笔记本并能够导入 numpy。输入 %env 给我(除其他外):'CONDA_DEFAULT_ENV': 'C:\\Users\\pd\\Anaconda2\\envs\\test'。我使用的是 Windows 10,Anaconda 64 位。
  • 你的 Anaconda 版本是多少?运行conda info
  • conda list 为这个 test 环境报告了什么?
  • 即使多年后,conda 的这类问题仍然存在。 pip install numpy 通常可以解决问题。

标签: python python-2.7 numpy anaconda


【解决方案1】:

卸载并重新安装 numpy。

pip uninstall numpy
pip install numpy

然后再次尝试导入,它应该可以工作。我就是这么做的

【讨论】:

  • 当你使用conda时不应该使用pip
  • conda uninstall numpy 然后 conda install numpy 为我工作
【解决方案2】:

与@Rafael 不同,对我来说,libiomp5md.dll 不是问题。我安装了 Dependency Walker 来调查发生了什么。尽管dll版本不同,但是Dependency Walker说没关系。

但问题是,mkl_intel_thread.dll 有警告(红色图标)。如果您使用的是 Win 8++,请忽略 api-winext-ms 问题,因为 Dependency Walker 未针对新的 Windows 版本进行更新,并且无法识别 Windows 新 API。

我的解决方案是将所有mkl_*.dlls从前者复制到后者:

  • \Anaconda2\Library\bin
  • \Anaconda2\Lib\site-packages\numpy\core

之后我可以导入 numpy 和 sklearn。

【讨论】:

  • 我遇到了同样的错误,除了 Anaconda3。我不必移动 dll 文件,但我将路径 \Anaconda3\Library\bin 添加到我的 Windows 10 路径变量中,然后它就可以工作了。
  • 我也是(在win 8.1上),有人知道发生了什么吗?
  • 在我使用 Windows 10 上的 Anaconda 3 和 python 3.7 的情况下,将以下 3 个路径添加到路径变量有帮助:C:\ProgramData\Anaconda3\Library\bin; C:\ProgramData\Anaconda3\Scripts; C:\ProgramData\Anaconda3
【解决方案3】:

似乎解决此问题的正确方法是:

conda install msvc_runtime

如果您在虚拟环境中,请在此处添加此包。

【讨论】:

【解决方案4】:

对我来说,这是通过将以下路径添加到我的系统路径变量来解决的。

C:\Users\UserName\Anaconda3\
C:\Users\UserName\Anaconda3\bin
C:\Users\UserName\Anaconda3\Scripts
C:\Users\UserName\Anaconda3\Library\mingw-w64\bin (not strictly necessary)
C:\Users\UserName\Anaconda3\Library\bin

在此之前,您可以通过手动添加这些路径来测试:

base_path = r"C:\Users\UserName\Anaconda3"
path = os.pathsep.join([os.path.join(base_path, i) for i in [r"", r"bin", r"Scripts", r"Library\mingw-w64\bin", r"Library\bin"]])
os.environ["PATH"]+=os.pathsep+path

感谢 this post 对 PyCharm 的支持。

【讨论】:

    【解决方案5】:

    为了记录,我在这里遇到了同样的错误(Windows 10 上的 Python 3.5 64 位),this page 帮助我找到了解决方案。问题在于与存在于两个位置的libiomp5md.dll 冲突:

    • C:\Windows\System32\libiomp5md.dll
    • C:\Anaconda3\Library\bin\libiomp5md.dll

    Python 试图使用 System32 文件夹中的版本,这是一个旧版本。我删除了它(重命名),现在它在 Anaconda3 文件夹中使用正确的版本,现在我可以导入 numpy 而不会出现导入错误。

    【讨论】:

      【解决方案6】:

      就我而言,我在 anaconda3 中也出现了 import numpy DLL 错误,而 Decrayer(11 月 28 日)提供了最佳解决方案:除了 Anaconda3 之外,我遇到了同样的错误:刚刚将路径 \Anaconda3\Library\bin 添加到您的Windows 10 路径变量,然后它起作用了。

      我一直在尝试安装 anaconda3.7.1 或 3.7.0,但没有运气,在完成关键步骤后重新启动 PC 以确保 DLL 不再在内存中使用。最终,多亏了 decrayer,现在 numpy 为我工作了!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-03-31
        • 2021-07-25
        • 2021-04-17
        • 1970-01-01
        • 1970-01-01
        • 2012-02-02
        • 1970-01-01
        相关资源
        最近更新 更多