在Windows 10下使用Anaconda Navigator 1.9.6创建新的虚拟环境,选择Python 3.7,命名python37
在VSCode的控制台中:
(python37) D:\TfsProj\alphastone>pip install numpy
Collecting numpy
Using cached https://files.pythonhosted.org/packages/41/b8/3a6b07352c2542ca1c89be7583e7ca07bf513895b6ac59ae008054f326b1/numpy-1.16.1-cp37-cp37m-win_amd64.whl
Installing collected packages: numpy
Successfully installed numpy-1.16.1
(与参数--no-cache-dir相同)
(python37) D:\TfsProj\alphastone>python
Python 3.7.2 (default, Feb 11 2019, 14:11:50) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
File "C:\Users\Name\.conda\envs\python37\lib\site-packages\numpy\core\__init__.py", line 16, in <module>
from . import multiarray
File "C:\Users\Name\.conda\envs\python37\lib\site-packages\numpy\core\multiarray.py", line 12, in <module>
from . import overrides
File "C:\Users\Name\.conda\envs\python37\lib\site-packages\numpy\core\overrides.py", line 6, in <module>
from numpy.core._multiarray_umath import (
ImportError: DLL load failed: Das angegebene Modul wurde nicht gefunden.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\Name\.conda\envs\python37\lib\site-packages\numpy\__init__.py", line 142, in <module>
from . import core
File "C:\Users\Name\.conda\envs\python37\lib\site-packages\numpy\core\__init__.py", line 47, in <module>
raise ImportError(msg)
ImportError:
IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!
所有建议,通过pip和conda进行的重新安装或其他numpy版本(例如1.15.4)都无法为我解决此问题。
如果我执行多个pip卸载numpy直到没有剩余的numpy,然后进行conda安装numpy,则导入numpy很有用(在1.15.4中)。
conda安装numpy执行以下操作:
The following NEW packages will be INSTALLED:
blas pkgs/main/win-64::blas-1.0-mkl
icc_rt pkgs/main/win-64::icc_rt-2019.0.0-h0cc432a_1
intel-openmp pkgs/main/win-64::intel-openmp-2019.1-144
mkl pkgs/main/win-64::mkl-2019.1-144
mkl_fft pkgs/main/win-64::mkl_fft-1.0.10-py37h14836fe_0
mkl_random pkgs/main/win-64::mkl_random-1.0.2-py37h343c172_0
numpy pkgs/main/win-64::numpy-1.15.4-py37h19fb1c0_0
numpy-base pkgs/main/win-64::numpy-base-1.15.4-py37hc3f5095_0
点子方式缺少什么?
有任何想法吗?
anaconda提供的额外支持库的位置与从pip install
获得的股票numpy提供的支持库之间的位置有所不同。 这需要对PATH
变量进行调整。 也许PATH
调整在导入时失败。 site-packages\numpy\.libs
目录是否存在,并且其中包含*.dll
文件吗?如果是这样,可以在运行python之前尝试将该目录添加到PATH
之前:
rem This fails
python -c "import numpy"
rem Does this succeed ???
PATH=path\to\site-packages\numpy\.libs;%PATH%
python -c "import numpy"
请向我们报告该目录是否存在,并且如果更改路径成功,则表明numpy\__config__.py
的代码未能修改os.environ['PATH']
。 也许您超出了允许的PATH
长度,或者PATH
环境变量存在其他问题。
Anaconda将多余的dll放在<anaconda install>\Library\bin
,并在您激活anaconda环境时将该目录添加到路径中。 如上所述,股票numpy尝试将.lib
目录附加到PATH
变量的末尾。
您的方法确实有效!
C:\ Users \ Name.conda \ envs \ test37 \ Lib \ site-packages \ numpy.libs存在,并且其中有一个文件:
libopenblas.IPBC74C7KURV7CB2PKT5Z5FNR3SIBV4J.gfortran-win_amd64.dll
我将尝试以较短的初始路径进行全新安装,以在大约一个小时内验证您的理论。
附带问题:那条路径中应该没有更多的dll吗? 我想在pytorch中使用OpenMP和mkl,而不是openblas ...
如果要使用mkl,请使用conda,而不要使用pip
抱歉,请使用pip install intel-numpy
而不是pip install numpy
,但是您将获得numpy 1.15.1 。 Conda使其更容易使用,似乎您正在使用anaconda,因此坚持使用conda可能会给您带来更统一的体验。
好的,我缩短了PATH,但是它仍然无法与“ pip install numpy”一起使用。
如果我“ conda activate test37”,则将其添加到我的PATH中:
PATH = C:\ Users \ Name.conda \ envs \ test37; C:\ Users \ Name.conda \ envs \ test37 \ Library \ mingw-w64 \ bin; C:\ Users \ Name.conda \ envs \ test37 \ Library \ usr \ bin; C:\ Users \ Name.conda \ envs \ test37 \ Library \ bin; C:\ Users \ Name.conda \ envs \ test37 \ Scripts; C:\ Users \ Name.conda \ envs \ test37 \斌; ...
我的PATH仍然很长,但是我再也无法删除它了,因为其他工具也需要它。
为什么没有conda numpy 1.16.1?
谢谢你的帮助,队友!
(test37)D:\ test> pip安装intel-numpy
Collecting intel-numpy
Could not find a version that satisfies the requirement intel-numpy (from versions: )
No matching distribution found for intel-numpy
“ conda install numpy”给我1.15.4正常工作。
@mattip非常感谢
也许我们应该静态链接并减轻这种路径修改的需要
numpy中针对较新的python版本的PATH编辑问题是否可能具有相同的原因?
https://github.com/pytorch/pytorch/issues/4518#issuecomment-463224849-> https://github.com/pytorch/pytorch/issues/17051
我也遇到相同类型的错误。 使用conda创建环境后,我必须使用pip卸载并使用conda安装所有对我造成问题的软件包。 这对我有用,尽管这不是理想的解决方案,因为这是非常手动的操作。
@djdookie :只是为了确定什么有效,什么无效。 您在C:\Users\Name.conda\envs\test37\Lib\site-packages\numpy.libs
拥有dll。 在启动python之前将其放在PATH之前。 您是否可以尝试将其附加到PATH的末尾(使用';'分隔符)并测试是否安装了pip安装的numpy(也许在新的conda环境中,这会更改路径)?
编辑:请注意,新环境将具有不同的dll路径
看来这是残破的ananconda,请参阅此问题ContinuumIO / anaconda-issues#10628
闭幕。 Anaconda似乎已解决导致此问题的问题。
我刚刚为Windows 7下载了适用于python3.7的最新Windows版本的conda,并收到了此问题。 我们可以重新营业吗?
我解决了问题。 当我使用WingIDE时,这是一个路径问题。 我使用这些说明进行修复
https://wingware.com/blog/anaconda
具体来说,我打开了anaconda命令提示符,然后执行“ PATH”并将其复制到项目的wing路径中。
作为参考,我的PATH = C:\ Users \ xx \ AppData \ Local \ Continuum \ anaconda3; C:\ Users \ xx \ AppData \ Local \ Continuum \ anaconda3 \ Library \ mingw-w64 \ bin; C:\ Users \ xx \ AppData \ Local \ Continuum \ anaconda3 \ Library \ usr \ bin; C:\ Users \ xx \ AppData \ Local \ Continuum \ anaconda3 \ Library \ bin; C:\ Users \ xx \ AppData \ Local \ Continuum \ anaconda3 \ Scripts ; C:\ Users \ xx \ AppData \ Local \ Continuum \ anaconda3 \ bin; C:\ Users \ xx \ AppData \ Local \ Continuum \ anaconda3 \ condabin;
我只是去了文件夹并删除了一个。 这似乎已经解决了。
如果您没有“ conda activate”您将在启动Jupyter之前使用的环境,那么在Jupyter中似乎也会发生这种情况。
如果您在启动vs代码之前没有“ conda激活”环境,那么在VS Code中也会发生这种情况。 如果我使用“代码”。 在conda环境提示下,它可以工作。
如果您没有“ conda activate”您将在启动Jupyter之前使用的环境,那么在Jupyter中似乎也会发生这种情况。
这对我有用。 而且这个问题似乎在jupyter实验室尤其如此
我通过用WinPython替换Anaconda3解决了Numpy DLL加载问题。
我在WinPaython中遇到这个问题
最有用的评论
anaconda提供的额外支持库的位置与从
pip install
获得的股票numpy提供的支持库之间的位置有所不同。 这需要对PATH
变量进行调整。 也许PATH
调整在导入时失败。site-packages\numpy\.libs
目录是否存在,并且其中包含*.dll
文件吗?如果是这样,可以在运行python之前尝试将该目录添加到PATH
之前:请向我们报告该目录是否存在,并且如果更改路径成功,则表明
numpy\__config__.py
的代码未能修改os.environ['PATH']
。 也许您超出了允许的PATH
长度,或者PATH
环境变量存在其他问题。Anaconda将多余的dll放在
<anaconda install>\Library\bin
,并在您激活anaconda环境时将该目录添加到路径中。 如上所述,股票numpy尝试将.lib
目录附加到PATH
变量的末尾。