numpy 已与 Anaconda 一起安装,但我收到 ImportError(DLL 加载失败:找不到指定的模块)
Posted
技术标签:
【中文标题】numpy 已与 Anaconda 一起安装,但我收到 ImportError(DLL 加载失败:找不到指定的模块)【英文标题】:numpy is already installed with Anaconda but I get an ImportError (DLL load failed: The specified module could not be found) 【发布时间】:2019-06-01 11:06:01 【问题描述】:我在 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)
我收到一个错误:
ImportError:
Importing the multiarray numpy extension module failed. Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, try `git clean -xdf` (removes all
files not under version control). Otherwise reinstall numpy.
Original error was: DLL load failed: The specified module could not be found.
See the full error message below:
----------------------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Users\my_user_name\AppData\Local\Continuum\anaconda3\lib\site-packages\numpy\core\__init__.py", line 16, in <module>
from . import multiarray
ImportError: DLL load failed: The specified module could not be found.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/my_user_name/Documents/TestMyApps/simpletest.py", line 1, in <module>
import numpy as np
File "C:\Users\my_user_name\AppData\Local\Continuum\anaconda3\lib\site-packages\numpy\__init__.py", line 142, in <module>
from . import add_newdocs
File "C:\Users\my_user_name\AppData\Local\Continuum\anaconda3\lib\site-packages\numpy\add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
File "C:\Users\my_user_name\AppData\Local\Continuum\anaconda3\lib\site-packages\numpy\lib\__init__.py", line 8, in <module>
from .type_check import *
File "C:\Users\my_user_name\AppData\Local\Continuum\anaconda3\lib\site-packages\numpy\lib\type_check.py", line 11, in <module>
import numpy.core.numeric as _nx
File "C:\Users\my_user_name\AppData\Local\Continuum\anaconda3\lib\site-packages\numpy\core\__init__.py", line 26, in <module>
raise ImportError(msg)
ImportError:
Importing the multiarray numpy extension module failed. Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, try `git clean -xdf` (removes all
files not under version control). Otherwise reinstall numpy.
Original error was: DLL load failed: The specified module could not be found.
Process finished with exit code 1
----------------------------------------------------------------------------------
我尝试使用 Anaconda Prompt 卸载并重新安装 numpy: conda 卸载 numpy,然后: conda install numpy [我现在有 numpy 1.15.4]。 重新安装似乎“成功”(至少根据 Anaconda Prompt),但是,我在 PyCharm 中不断收到错误。
奇怪的是,当我直接进入 Anaconda Prompt 时,输入:
python
import numpy as np
print(np.pi)
我没有收到任何错误,我可以看到correct result printed out。 起初,我想也许在使用 PyCharm 时,我以某种方式指向了一个不同的可执行文件,但我检查了 Anaconda Prompt 和 Pycharm 的 Python 控制台,使用:
sys.executable
它们都显示相同的路径:
'C:\\Users\\my_user_name\\AppData\\Local\\Continuum\\anaconda3\\python.exe'
请注意,在 PyCharm 中,当我尝试运行不导入任何库的脚本时,或者当导入的库就像 sys 或 os 时,脚本运行良好。但是,当我尝试运行任何其他涉及导入以某种方式依赖于 numpy 的库的脚本时,它也会失败(即我导入 pandas 的脚本等) 这些相同的脚本在 Anaconda Prompt 中运行良好。
我在这里不知所措,非常感谢任何帮助!
【问题讨论】:
很可能是 PyCharm 中的一个已知问题youtrack.jetbrains.com/issue/PY-27234 使用 conda 环境(不是纯 conda,conda.io/docs/user-guide/tasks/manage-environments.html)能解决你的问题吗? 【参考方案1】:我实际上已经找到了解决方案。我最初通过将路径添加到 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\
现在,我不确定我的系统到底在寻找这 4 条路径中的哪一条。但是,添加这种组合确实对我有用?
【讨论】:
谢谢。这很有帮助。 @fixingstuff ,我不必以任何方式激活这些路径。我所要做的就是将路径添加到系统环境变量 PATH。 对我来说,它通过将以下两个添加到 PATH 中来工作: ...\Scripts\ 和 ...\Library\bin\ 除了...\Anaconda3
,你只需要...\Anaconda3\Library\bin
。对于pylint
等附加功能,可以添加...\Anaconda3\Scripts
非常感谢。它对我有用。但是我使用了这些路径:C:\ProgramData\Anaconda3、C:\ProgramData\Anaconda3\Library、C:\ProgramData\Anaconda3\Library\bin、C:\ProgramData\Anaconda3\Library\mingw-w64\bin 和 C :\ProgramData\Anaconda3\Scripts【参考方案2】:
通过添加以下给定路径来编辑您的系统环境变量“PATH”(请参阅步骤here)。
注意:如果您已经安装了 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
【讨论】:
请更新 Anaconda 的新版本【参考方案3】:在我的情况下,conda 没有将包放在我的 IDE(VS 代码)或 pytest 预期的位置。尽管我能够在环境中调用 pytest,但 VS Code 无法 [1] 调试 pytest 模块。我想出了 2 个解决方案。
解决方案 A:从已激活的环境中启动 VS Code-
确保您已将 numpy 安装到 conda 环境中,例如基地
启动一个激活的命令行,例如Anaconda 提示或 Anaconda Powershell 提示
从激活的命令行启动 IDE(例如,通过发出
code
来打开 VS Code)
你可以在调试 pytest 时使用 numpy 包
-
如果你有 conda 安装的 numpy,请先删除它
用 pip 安装 numpy
现在您可以直接打开 IDE,无需从激活的环境中打开它
A thread on VS Code's python extension 表示这是 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.
【讨论】:
对我来说,只需要在 (base) 中安装 numpy 即可解决我的问题。 Conda 通常以管理员权限安装,而您,用户没有管理员权限来修改基础。这是企业环境中的常见做法。您是否尝试过在其他环境中执行调试器?【参考方案4】:对于希望轻松修复的 PyCharm 用户,此问题已在 PyCharm 2019.2 中修复。
【讨论】:
我正在使用 Pycharm 2021.X,但对我来说仍然是个问题。【参考方案5】:获取操作系统环境路径如:
import os
os.environ['PATH']
现在,将此路径添加到 pycharm 调试器/控制台输出中的环境变量 PATH
。有用。
【讨论】:
我认为最好的答案。 绝对是最好的答案。照顾不同平台上不同的可能路径。只是为了详细说明,在命令行(Anaconda 提示符、终端等)中通过您的工作 conda 环境使用上述 python 命令。然后将命令的输出添加到您的系统路径。重新启动 VS 代码,它应该可以工作了。【参考方案6】:这里的解决方案与 DanielTuzes 的解决方案 A 相同,但我在这里写得更清楚:
如果你使用的是 VS Code + Windows + Anaconda you should:
- Open the command palette (Control-Shift-P)
- search for Terminal: Select Default Profile
- select: Command Prompt
这对我有用!
这是因为默认情况下 VS Code 中的 PowerShell 未与 anaconda 提示集成,后者使用 CMD 而不是 PowerShell。
【讨论】:
【参考方案7】:只需尝试卸载并重新安装
pip uninstall numpy
和
pip install numpy
或
pip3 install numpy
【讨论】:
【参考方案8】:将C:\ProgramData\Anaconda3\envs\tf-gpu\Library\bin
添加到系统路径也对我有用。
【讨论】:
【参考方案9】:将 Anaconda 添加到系统 PATH 对我不起作用,但卸载并重新安装可以。
【讨论】:
【参考方案10】:我尝试包含 PATH,但没有成功。所以我尝试重新安装 Anaconda 并意识到上次安装它时,我没有启用“将 Anaconda3 添加到我的 PATH 环境变量”选项。我启用并安装了它,它运行良好。
【讨论】:
【参考方案11】:我在 numpy 1.20.1 和以下版本中遇到了这个问题:
Visual Studio 代码 1.59.0 Anaconda 2.0.3 Python 3.8.8我可以使用 Anaconda 命令提示符导入 numpy,但不能使用 Visual Studio Code。
我通过卸载然后重新安装 numpy 解决了这个问题。
【讨论】:
【参考方案12】:我刚遇到同样的问题,发现上面的最佳解决方案很有用 (https://***.com/a/54131905/3645664)。
特别是,我在用户配置文件级别添加了以下路径,NumPy 开始正常工作:
C:\Anaconda3\Library\bin\
【讨论】:
【参考方案13】:即使我在命令提示符下运行 python 文件,但 python.exe 来自 Anaconda。所以当你运行你得到的任何 python 文件时,
警告: 这个 Python 解释器在 conda 环境中,但是环境有 没有被激活。库可能无法加载。激活这个环境 请看https://conda.io/activation。
您需要使用此命令激活环境
conda init cmd.exe
conda activate
你会看到下面的命令窗口,带有基本环境
(base) C:\Users\yash\Documents\pycharm_project\venv>
这样做我解决了这个错误
ImportError: numpy.core.multiarray 导入失败 回溯(最近一次通话最后): 文件“opencv_p1.py”,第 2 行,在 导入简历2 文件“E:\Anaconda3\lib\site-packages\cv2__init__.py”,第 3 行,在 从 .cv2 导入 * ImportError: numpy.core.multiarray 导入失败
如果您想停用 conda,请使用
conda deactivate
如果您有任何疑问,请点击此链接https://conda.io/activation
【讨论】:
对我没用(:【参考方案14】:问题是numpy有两个不同的版本。您可以做的是卸载 numpy 库。我认为你必须卸载 numpy 两次。因为两个不同的 numpy 版本。
pip uninstall numpy
pip uninstall numpy
【讨论】:
【参考方案15】:播放下面的 GIF 并按照给定的方式进行操作。
来源 - JetBrain
它对我有用..
【讨论】:
【参考方案16】:可能有点脑残,但我在 PyCharm 中遇到过这种情况,因为我试图在脚本完成“发现二进制模块”之前运行我的脚本。然后即使完成了这个过程,我仍然无法运行代码而不会出现这个错误。
只需重新启动 PyCharm 即可修复它。
【讨论】:
【参考方案17】:我发现我的问题在于 VSCode 的设置方式。即使我在虚拟环境中,它也没有运行我安装的版本。如果您使用的是虚拟环境,请检查它用于运行代码的 python.exe
的路径。 IE。 C:/Users/user_name/Anaconda3/python.exe
与 c:/Users/user_name/Documents/pythonTesting/appName/Scripts/python.exe
运行 pip list
显示正确的版本,但运行脚本时出现错误,版本不同。
最后我注意到 VSCode 使用的是默认的 Conda 而不是我虚拟环境中的 python.exe。
要解决此问题,您需要按CTRL+SHIFT+P
(无论如何在 Windows 上)并选择解释器,找到您的虚拟环境 Scripts 文件夹,并将其指向其中的 python.exe。
宾果游戏。
【讨论】:
【参考方案18】:我在 Windows 10 系统上的 conda 包管理器和 jupyter notebook 中遇到了问题。添加CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1
解决了这个问题。
两步解决方案。
(1) 找到你的 ipykernel 环境配置在哪里:
jupyter kernelspec list
在我的例子中,路径是C:\ProgramData\jupyter\kernels\myenv
(2) 在路径中的kernel.json
文件中添加"env": "CONDA_DLL_SEARCH_MODIFICATION_ENABLE":"1"
。例如,这是我编辑后的kernel.json
(不要忘记添加逗号以保留正确的json格式):
"argv": [
"C:\\Users\\tsund\\miniconda3\\envs\\myenv\\python.exe",
"-m",
"ipykernel_launcher",
"-f",
"connection_file"
],
"display_name": "myenv",
"language": "python",
"metadata":
"debugger": true
,
"env": "CONDA_DLL_SEARCH_MODIFICATION_ENABLE":"1"
【讨论】:
【参考方案19】:遇到同样的错误,找到了这个帖子,但没有任何帮助。 我没有 anaconda,但使用 win32serviceutil 在 Windows 服务中使用 numpy。 注意,在 cmd 中不会出现问题 - 只是在服务中。
解决方案是安装实际的 VC++ 可再发行组件 (!!!)(Microsoft Visual C++ 2015 x64 在我的环境中)。 这个库没有任何意义。
希望这个答案对任何人都有帮助。
【讨论】:
【参考方案20】:卸载并重新安装 numpy 对我有用。
pip uninstall numpy
pip install numpy
【讨论】:
这个答案已经提出***.com/a/68162635/13525512以上是关于numpy 已与 Anaconda 一起安装,但我收到 ImportError(DLL 加载失败:找不到指定的模块)的主要内容,如果未能解决你的问题,请参考以下文章