numpy已与Anaconda一起安装,但出现ImportError(DLL加载失败:找不到指定的模块)

Nod*_*ame 14 python numpy pycharm python-3.x

我在Python 3.7中使用Anaconda发行版。在安装的软件包中,我有numpy,pandas等。在PyCharm IDE中,我已将Project Interpreter设置为通过Anaconda安装的python.exe的路径:C:\ Users \ my_user_name \ AppData \ Local \ Continuum \ anaconda3 \ python.exe

但是,当我尝试运行简单的python脚本时:

import numpy as np
print(np.pi)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

ImportError:导入多数组numpy扩展模块失败。您极有可能尝试导入失败的numpy构建。如果您使用的是numpy git repo,请尝试git clean -xdf(删除不受版本控制的所有文件)。否则,请重新安装numpy。

原始错误是:DLL加载失败:找不到指定的模块。

请参阅下面的完整错误消息:


追溯(最近一次通话):文件“ C:\ Users \ my_user_name \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ numpy \ core__init __。py”,位于第16行。import multiarray ImportError:DLL加载失败:找不到指定的模块。

在处理上述异常期间,发生了另一个异常:

追溯(最近一次通话):文件“ C:/Users/my_user_name/Documents/TestMyApps/simpletest.py”,第1行,在导入numpy中作为np文件“ C:\ Users \ my_user_name \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ numpy__init __。py“,第142行,位于。从numpy.lib的第13行,导入add_newdocs文件“ C:\ Users \ my_user_name \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ numpy \ add_newdocs.py” import add_newdoc文件“ C:\ Users \ my_user_name \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ numpy \ lib__init __。py“,第8行,来自.type_check导入*文件“ C:\ Users \ my_user_name \ AppData \ Local \ Continuum \ anaconda3 \ lib \ “ site-packages \ numpy \ lib \ type_check.py”,第11行,在导入numpy.core.numeric中,以_nx文件“ C:git clean -xdf(删除所有不受版本控制的文件)。否则,请重新安装numpy。

原始错误是:DLL加载失败:找不到指定的模块。

流程以退出代码1完成


我尝试使用Anaconda Prompt卸载和重新安装numpy,方法是:conda卸载numpy,然后:conda安装numpy [我现在有numpy 1.15.4]。重新安装似乎“成功”(至少根据Anaconda Prompt的说法),但是,我在PyCharm中始终遇到错误。

奇怪的是,当我直接进入Anaconda Prompt并输入:

python
import numpy as np
print(np.pi)
Run Code Online (Sandbox Code Playgroud)

我没有任何错误,并且可以看到打印出正确结果。最初,我以为也许在使用PyCharm时,我以某种方式指向了另一个可执行文件,但是我使用以下命令检入了Anaconda Prompt和Pycharm的Python Console。

sys.executable
Run Code Online (Sandbox Code Playgroud)

它们都显示相同的路径:

'C:\\Users\\my_user_name\\AppData\\Local\\Continuum\\anaconda3\\python.exe'
Run Code Online (Sandbox Code Playgroud)

请注意,在PyCharm中,当我尝试运行不导入任何库的脚本时,或者当导入的库就像sys或os时,脚本运行良好。但是,当我尝试运行其他任何涉及导入某种程度上依赖于numpy的库的脚本时,它也会失败(即,我导入熊猫的脚本等),这些相同的脚本在Anaconda Prompt中也能正常工作。

我在这里不知所措,任何帮助将不胜感激!

Nod*_*ame 28

我实际上已经找到了解决方案。我最初是通过将路径添加到Python可执行目录中的Scripts文件夹中来编辑系统环境变量“ PATH”的。事实证明,这还不够……

我必须为其添加更多路径,这神奇地做到了。

请参阅下面为系统环境变量PATH添加的路径:

C:\Users\<myusername>\AppData\Local\Continuum\Anaconda3\Scripts\
C:\Users\<myusername>\AppData\Local\Continuum\Anaconda3\Library\
C:\Users\<myusername>\AppData\Local\Continuum\Anaconda3\Library\bin\
C:\Users\<myusername>\AppData\Local\Continuum\Anaconda3\Library\mingw-w64\bin\
Run Code Online (Sandbox Code Playgroud)

现在,我不确定我的系统在这4个路径中到底要寻找哪一条。但是,添加此组合肯定对我有用

  • 除了 `...\Anaconda3` 之外,您只需要 `...\Anaconda3\Library\bin`。对于诸如“pylint”之类的附加功能,您可以添加“...\Anaconda3\Scripts” (5认同)
  • 谢谢。这非常有帮助。 (3认同)
  • 对我而言,它仅通过将以下两个添加到PATH来工作:... \ Scripts \和... \ Library \ bin \ (2认同)
  • 非常感谢。这对我有用。但是我使用了这些路径:C:\ProgramData\Anaconda3、C:\ProgramData\Anaconda3\Library、C:\ProgramData\Anaconda3\Library\bin、C:\ProgramData\Anaconda3\Library\mingw-w64\bin 和 C :\ProgramData\Anaconda3\Scripts (2认同)

Dan*_*zes 12

就我而言,conda 没有将包放置在我的 IDE(VS Code)或 pytest 期望的位置。尽管我能够在环境中调用 pytest,但 VS Code 无法 [1] 调试 pytest 模块。我想出了两个解决方案。

  • 解决方案 A:从激活的环境启动 VS Code
    1. 确保您已将 numpy 安装到 conda env 中,例如安装到 base
    2. 启动激活的命令行,例如 Anaconda Prompt 或 Anaconda Powershell Prompt
    3. 从激活的命令行启动 IDE(例如,通过发出命令code打开 VS Code)
    4. 您可以在调试 pytest 时使用 numpy 包
  • 解决方案 B:使用 pip 安装 numpy
    1. 如果你有 conda 安装的 numpy,请先删除它
    2. 使用 pip 安装 numpy
    3. 现在您可以直接打开您的IDE,无需从激活的环境中打开它

VS Code 的 python 扩展上的一个线程告诉我们这是 conda 方面的问题。

[1]:我能够从激活的环境中手动运行 pytest,但是从 VS Code 的调试器启动的 pytest 不知何故不知道 numpy 的位置。在 pytest 函数上启动调试会话后收到的错误消息如下:

_______________________ ERROR collecting test_pytest.py _______________________
ImportError while importing test module 'c:\Users\userFolder\test_pytest.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
..\..\miniconda3\lib\site-packages\numpy\core\__init__.py:22: in <module>
    from . import multiarray
..\..\miniconda3\lib\site-packages\numpy\core\multiarray.py:12: in <module>
    from . import overrides
..\..\miniconda3\lib\site-packages\numpy\core\overrides.py:7: in <module>
    from numpy.core._multiarray_umath import (
E   ImportError: DLL load failed while importing _multiarray_umath: The specified module could not be found.

During handling of the above exception, another exception occurred:
..\..\miniconda3\lib\importlib\__init__.py:127: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
test_pytest.py:2: in <module>
    import numpy
..\..\miniconda3\lib\site-packages\numpy\__init__.py:140: in <module>
    from . import core
..\..\miniconda3\lib\site-packages\numpy\core\__init__.py:48: in <module>
    raise ImportError(msg)
E   ImportError: 
E   
E   IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!
E   
E   Importing the numpy C-extensions failed. This error can happen for
E   many reasons, often due to issues with your setup or how NumPy was
E   installed.
E   
E   We have compiled some common reasons and troubleshooting tips at:
E   
E       https://numpy.org/devdocs/user/troubleshooting-importerror.html
E   
E   Please note and check the following:
E   
E     * The Python version is: Python3.8 from "C:\Users\userFolder\miniconda3\python.exe"
E     * The NumPy version is: "1.19.2"
E   
E   and make sure that they are the versions you expect.
E   Please carefully study the documentation linked above for further help.
E   
E   Original error was: DLL load failed while importing _multiarray_umath: The specified module could not be found.

Run Code Online (Sandbox Code Playgroud)


小智 6

对于想要简单修复的 PyCharm 用户,此问题已在 PyCharm 2019.2 中修复。


Sri*_*ary 6

通过添加以下给定路径来编辑您的系统环境变量“PATH”(请参阅此处的步骤)。

注意:如果您已经安装了 numpy,请按照此步骤操作。

If using anaconda:
C:\Users\<username>\AppData\Local\Continuum\Anaconda<version>\Library\bin\

If using independent python interpreter:
C:\Users\<username>\AppData\Roaming\Python\Python<version>\Library\bin
Run Code Online (Sandbox Code Playgroud)


小智 5

获取 os 环境路径,如:

import os
os.environ['PATH']
Run Code Online (Sandbox Code Playgroud)

现在,将此路径添加到PATHpycharm 调试器/控制台输出中的环境变量。有用。