为 Windows 10 安装 numpy:导入多数组 numpy 扩展模块失败
Posted
技术标签:
【中文标题】为 Windows 10 安装 numpy:导入多数组 numpy 扩展模块失败【英文标题】:Installing numpy for Windows 10: Importing the multiarray numpy extension module failed 【发布时间】:2017-05-30 14:31:03 【问题描述】:我是Python
的新手,我尝试安装numpy
失败。当前的问题是读取错误消息,部分是Importing the multiarray numpy extension module failed
。我无法在 Internet 上找到此错误消息并寻求帮助。完整的错误信息在这篇文章的底部。
首先我认为我应该提供系统和版本的详细信息并描述我所做的事情。我在 64 位机器上运行 Windows 10
并从 https://www.python.org/downloads/windows/ 安装了 Python 2.7.13
我还安装了Anaconda
,也为Python 2.7
和一台64 位机器,从这里下载https://www.continuum.io/downloads。 Anaconda
运行 Python 2.7.12
,而不是 Python 2.7.13
。当我在Anaconda
GUI IPython
中键入import numpy
时,不会出现任何错误或警告。尽管如此,我的印象是从Python 2.7.13
内部运行numpy
使用IDLE (Python GUI)
可能计算速度更快。 Python 2.7.13
出现在我的 Path 语句中。
我从http://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype下载了numpy-1.12.0rc2+mkl-cp27-cp27m-win_amd64.whl
,根据这篇帖子installing numpy from wheel format on windows ( not a supported wheel on this platform.)的建议,我重命名了:
numpy-1.12.0rc2+mkl-cp27-cp27m-win_amd64.whl
至:
numpy-1.12.0rc2+mkl-cp27-none-win32.whl
通过单击名称并对其进行手动编辑。重命名的文件在文件夹C:\Python27
然后我使用Windows命令窗口(cmd)更新pip
输入:
python -m pip install --upgrade pip
一条消息说pip
已经是最新的了。
然后我在 cmd 窗口中输入以下内容:
pip install numpy-1.12.0rc2+mkl-cp27-none-win32.whl
一条消息说:Successfully installed numpy-1.12.0rc2+mkl
。 (在执行此操作之前,我尝试使用其原始名称安装 .whl
文件并收到该文件不适用于我的平台的错误。)
在Python 2.7.13
中安装numpy
后,我打开Python
并输入:
import numpy
这是返回的完整错误消息:
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import numpy
File "C:\Python27\lib\site-packages\numpy\__init__.py", line 142, in <module>
from . import add_newdocs
File "C:\Python27\lib\site-packages\numpy\add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
File "C:\Python27\lib\site-packages\numpy\lib\__init__.py", line 8, in <module>
from .type_check import *
File "C:\Python27\lib\site-packages\numpy\lib\type_check.py", line 11, in <module>
import numpy.core.numeric as _nx
File "C:\Python27\lib\site-packages\numpy\core\__init__.py", line 24, 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.
大量numpy
文件夹和文件现在出现在C:\Python27
中
我还尝试了以下两个命令并收到了显示的消息:
>>> pip show numpy
SyntaxError: invalid syntax
>>> git clean -xdf
SyntaxError: invalid syntax
>>>
抱歉,这篇文章太长了,但我不知道以上哪些细节可能对诊断问题最有帮助。我只使用Python
大约 24 小时,大部分时间都花在尝试将numpy
安装到Python 2.7.13
中。大多数情况下我使用R
并且知道一些C
。我没有尝试安装任何其他 Python
库或包。也许我缺少numpy
所需的依赖项。感谢您对此问题的任何建议或帮助。如果我可以提供更多信息,请告诉我。抱歉,如果这是重复的。
【问题讨论】:
最后的命令(pip 和 git)不是 python 命令。您应该在 python shell 之外调用它们。此外,我认为 anaconda 已经安装了 numpy。尝试删除您使用 pip 安装的内容并再次导入 numpy。 我用pip
安装的唯一东西是numpy-1.12.0rc2+mkl-cp27-none-win32.whl
。那是我应该卸载的吗?我安装了Anaconda
和它自己的安装应用程序,该应用程序是从Anaconda
网站下载的。我应该尝试卸载Anaconda
吗?在安装 .whl
文件之前,C:\Python27
文件夹内几乎没有文件,import numpy
返回一个语法错误。
尝试卸载你安装的 numpy。 Anaconda 带有预安装的软件包,其中之一是 numpy
@JoaquimFerrer 我明白这一点。 Numpy
在 Anaconda
工作。我的偏好是在Python 2.7.13
中运行它,因为我有一种印象,也许是错误的印象,即Python 2.7.13
的计算能力和速度更好。如何在从Python
网页下载的Python 2.7.13
中安装numpy
?
@cgohlke 请提供指向文件numpy-1.12.0+mkl-cp27-none-win32.whl
的链接。我找不到它。
【参考方案1】:
在我的情况下,这个问题与 numpy.所以,我删除了 numpy 并再次安装它。如果您已经有 conda 环境,要删除 numpy,我们可以通过 conda remove numpy
完成,如果此命令正在删除一些其他依赖于 numpy 的包,那么如果安装了 pip,则在同一环境中,可以使用 pip pip uninstall numpy
删除 numpy 和再次下载它使用pip install numpy
。这应该可以解决您的错误。
【讨论】:
谢谢!这解决了我在 64 位 Windows 10 上的问题。 谢谢!就我而言,numpy 仅使用 pip 安装,但您的回答让我走上了正确的道路。我做了一个 conda install numpy 并解决了这个问题!【参考方案2】:在https://github.com/numpy/numpy/issues/9272 上广泛讨论了这个问题,并提供了一个对我有用的解决方案。这与我相信您拥有的 Anaconda 环境有关。
引用: tobigithub 于 2017 年 7 月 23 日发表评论。 @njsmith 谢谢,我刚刚确认在从未见过英特尔 MKL DLL、numpy 或 conda 的干净 Windows 10 系统上使用 VM,一切都很好,并且 numpy 工作正常。我只是很困惑 numpy 如何突然停止工作,可能是第三方。可能需要更多的挖掘,让我们看看我们能找到什么来使 numpy 铁定解决任何依赖问题。
该解决方案确实与WIN下使用Intel MKL库的一些DLL依赖问题有关 numpy 导入错误在 python 3.6.2 和 numpy 1.13.1 下:
“导入 numpy” numpy\core_init_.py",第 16 行,在 从 。导入多数组 ImportError: DLL load failed: 找不到指定的过程。
快速而肮脏的解决方案是从特定环境 (env) 子文件夹中复制所有英特尔 mkl*.dll 库(参见 ***)
到
04/13/2017 12:50 AM 30,277,392 mkl_avx.dll
04/13/2017 12:50 AM 38,253,840 mkl_avx2.dll
04/13/2017 12:50 AM 42,234,640 mkl_avx512.dll
04/13/2017 12:50 AM 45,722,896 mkl_avx512_mic.dll
04/13/2017 12:50 AM 25,369,360 mkl_core.dll
04/13/2017 12:50 AM 24,541,456 mkl_def.dll
04/13/2017 12:50 AM 24,506,640 mkl_intel_thread.dll
04/13/2017 12:50 AM 29,744,400 mkl_mc.dll
04/13/2017 12:50 AM 30,594,320 mkl_mc3.dll
04/13/2017 12:50 AM 12,567,824 mkl_rt.dll
04/13/2017 12:50 AM 11,388,688 mkl_sequential.dll
04/13/2017 12:50 AM 12,575,504 mkl_tbb_thread.dll
04/13/2017 12:50 AM 11,250,960 mkl_vml_avx.dll
04/13/2017 12:50 AM 11,463,952 mkl_vml_avx2.dll
04/13/2017 12:50 AM 10,285,840 mkl_vml_avx512.dll
04/13/2017 12:50 AM 11,692,304 mkl_vml_avx512_mic.dll
04/13/2017 12:50 AM 5,224,208 mkl_vml_cmpt.dll
04/13/2017 12:50 AM 5,345,552 mkl_vml_def.dll
04/13/2017 12:50 AM 9,477,904 mkl_vml_mc.dll
04/13/2017 12:50 AM 9,368,336 mkl_vml_mc2.dll
04/13/2017 12:50 AM 9,593,616 mkl_vml_mc3.dll
现在 numpy 可以导入并正常运行了。
【讨论】:
【参考方案3】:我似乎已经使用以下步骤在Windows 10
64 位计算机上为Python 2.7.13
安装了numpy
。我能够为Python 2.7.13
的32 位或64 位版本安装numpy
。提供了两者的说明。
此答案的顶部是我对 32 位 Python
的说明。
中间是我对 64 位 Python
的说明。
底部是我使用 wheel 文件对 64 位 Python
的说明。
我怀疑我原来帖子中的主要问题可能是由于没有意识到从这里下载的 Python
的默认版本 (https://www.python.org/downloads/) 显然是 32 位的。
用于在 32 位 Python 2.7.13
上安装 numpy
卸载Anaconda
在Environment Variables
窗口中从User Variables
中删除了Anaconda
从Python官方网站安装Python 2.7.13
:https://www.python.org/
在命令窗口中输入:
C:\users\general1>cd:\python27
尝试在命令窗口中更新 pip
,尽管 pip
已经是最新的:
python -m pip install -U pip
在命令窗口中使用了以下命令,返回了大量错误:
pip 安装 numpy
在命令窗口中输入:
python -m pip install numpy
第 7 步似乎奏效了。它返回以下消息:
C:\Python27>python -m pip install numpy
Collecting numpy
Retrying (Retry(total=4, connect=None, read=None, redirect=None))
after connection broken by 'ProtocolError('Connection aborted.',
error(10054, 'An existing connection was forcibly
closed by the remote host'))': /simple/numpy/
Downloading numpy-1.12.0-cp27-none-win32.whl (6.6MB)
100% |################################| 6.6MB 64kB/s
Installing collected packages: numpy
Successfully installed numpy-1.12.0
打开Python 2.7.13
并输入:
导入 numpy
仅返回命令提示符。未发出任何错误或警告。
我还没有尝试使用任何需要numpy
的代码,但至少它似乎已经安装了。
第 7 步表示下载了一个 32 位文件:
numpy-1.12.0-cp27-none-win32.whl
我不知道安装的是 32 位版本的 numpy
还是 64 位版本。也许该文件是 64 位版本,如我的问题中所述,已重命名为 32 位版本。
我输入了Python
(来自Do I have Numpy 32 bit or 64 bit?):
import numpy.distutils.system_info as sysinfo
sysinfo.platform_bits
32
所以,似乎安装了 32 位版本的 numpy
,尽管我的 Python
应该是 64 位版本(来自这里:How do I determine if my python shell is executing in 32bit or 64bit mode on OS X?):
import platform
platform.architecture()[0]
'32bit'
也许在Python
的所有安装和卸载过程中,我上次不小心安装了一个32位版本。我可以尝试再次安装 Python
并使用预期的 64 位版本。希望上述相同步骤仍然有效。
如果我想要Python 2.7.13
的64位版本,我可以在Python
官方网页上点击以下内容(这里:https://www.python.org/downloads/windows/):
Download Windows x86-64 MSI installer
而不是突出的(https://www.python.org/downloads/):
Download Python 2.7.13
我也很想知道文件numpy-1.12.0-cp27-none-win32.whl
是从哪里下载的。如果我发现,我也会提供。可能是从这里下载的:https://pypi.python.org/pypi/numpy
用于在 64 位 Python 2.7.13
上安装 numpy
上述步骤适用于安装numpy
,结果是Python 2.7.13
的32 位版本。
要为 64 位版本的 Python 2.7.13
安装 numpy,我使用了以下步骤:
卸载Python 2.7.13
下载:python-2.7.13.amd64.msi
,点击:Download Windows x86-64 MSI installer
从此处:https://www.python.org/downloads/windows/
在命令窗口中输入:
C:\users\general1>cd:\python27
尝试在命令窗口中更新pip
,尽管pip
已经是最新的:
python -m pip install -U pip
在命令窗口中使用了以下命令,这次没有返回任何错误:
pip 安装 numpy
返回:
C:\Python27>pip install numpy
Collecting numpy
Downloading numpy-1.12.0-cp27-none-win_amd64.whl (7.5MB)
100% |################################| 7.5MB 63kB/s
Installing collected packages: numpy
Successfully installed numpy-1.12.0
打开Python 2.7.13
并输入:
导入 numpy
没有返回错误或警告。
检查 numpy
是 64 位还是 32 位。它是 64 位的。
将 numpy.distutils.system_info 导入为系统信息
sysinfo.platform_bits
64
用于在Python 2.7.13
中安装numpy
轮文件
安装numpy
后,我尝试安装scipy
并收到错误:numpy.distutils.system_info.NotFoundError: no lapack/blas resources found
(此处描述为Windows Scipy Install: No Lapack/Blas Resources Found)。
我做了以下事情:
已卸载Python 2.7.13
已安装 Visual Studio Community 2017 RC
,如 drawid 所述(此处:Windows Scipy Install: No Lapack/Blas Resources Found)
安装VCForPython27.msi
也如drawid 所述。
然后我收到了这里提到的scipy
错误cannot import name NUMPY_MKL
(ImportError: cannot import name NUMPY_MKL)。
我按照 VMAtm 的建议从这里下载了文件 numpy-1.12.0+mkl-cp27-cp27m-win_amd64.whl
和 scipy-0.18.1-cp27-cp27m-win_amd64.whl
:http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy。
然后我:
卸载Python 2.7.13
使用python-2.7.13.amd64.msi
重新安装Python 2.7.13
使用命令窗口中的以下行从http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 安装numpy-1.12.0+mkl-cp27-cp27m-win_amd64.whl
:
pip install numpy-1.12.0+mkl-cp27-cp27m-win_amd64.whl
使用命令窗口中的以下行从http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 安装scipy-0.18.1-cp27-cp27m-win_amd64.whl
pip install scipy-0.18.1-cp27-cp27m-win_amd64.whl
numpy
和 scipy
现在都可以在 Python 2.7.13
内部导入
请注意,在使用上述pip
命令之前,我将scipy-0.18.1-cp27-cp27m-win_amd64.whl
和numpy-1.12.0+mkl-cp27-cp27m-win_amd64.whl
放在文件夹c:\Python27
中。
C:\>cd\Python27
C:\Python27>pip install numpy-1.12.0+mkl-cp27-cp27m-win_amd64.whl
Processing c:\python27\numpy-1.12.0+mkl-cp27-cp27m-win_amd64.whl
Installing collected packages: numpy
Successfully installed numpy-1.12.0+mkl
C:\Python27>pip install scipy-0.18.1-cp27-cp27m-win_amd64.whl
Processing c:\python27\scipy-0.18.1-cp27-cp27m-win_amd64.whl
Installing collected packages: scipy
Successfully installed scipy-0.18.1
C:\Python27>
【讨论】:
【参考方案4】:我通过以下步骤解决了这个问题:
-
创建和激活新的
conda
环境
在环境中安装numpy
然后将这个环境用于我的
项目
我使用PyCharm
所以执行(3),我只是将项目解释器设置为我在(1)中创建的新环境中的Python解释器。
【讨论】:
以上是关于为 Windows 10 安装 numpy:导入多数组 numpy 扩展模块失败的主要内容,如果未能解决你的问题,请参考以下文章
尝试在 Windows 10 上安装 NumPy 和其他库时出错 [重复]
Windows10+Python3下安装NumPy+SciPy+Matplotlib
windows下安装python的numpy,scipy,sklearn