如何在Python 3.x中成功导入numpy?

3

如何在Python shell中导入numpy类似,但存在不同的错误和上下文。

现在,问题来了。我成功地安装了numpy 1.7.0,虽然我必须先进行一些注册表编辑,但是当我尝试在shell中导入它时,我得到了一大堆错误:

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    from numpy import *
  File "C:\Python32\lib\site-packages\numpy\__init__.py", line 137, in <module>
    from . import add_newdocs
  File "C:\Python32\lib\site-packages\numpy\add_newdocs.py", line 9, in <module>
    from numpy.lib import add_newdoc
  File "C:\Python32\lib\site-packages\numpy\lib\__init__.py", line 4, in <module>
    from .type_check import *
  File "C:\Python32\lib\site-packages\numpy\lib\type_check.py", line 8, in <module>
    import numpy.core.numeric as _nx
  File "C:\Python32\lib\site-packages\numpy\core\__init__.py", line 5, in <module>
    from . import multiarray
ImportError: DLL load failed: %1 is not a valid Win32 application.

注意:我使用了from numpy import *。当我导入pygame时不会出现这种情况,那么问题出在哪里?我知道不同的模块有不同的问题(例如需要进行注册表编辑才能安装...)。问题出在哪里,我该如何解决?我在这里找到了类似的投诉。


你是从SourceForge的.exe安装程序中安装的吗?我没有看到1.7.0 numpy的安装程序。你可能使用了错误的安装程序?如果是自己构建的,则该错误指示它是64位构建并且使用32位Python。我在Python 3.2上使用了1.6.2的安装程序,没有遇到任何问题或黑客攻击。 - Mark Tolonen
我从这里下载的:http://sourceforge.net/projects/numpy/files/NumPy/1.7.0beta/numpy-1.7.0.dev-f93774d-win32-superpack-python3.2.exe/download。如果这个不行,我会尝试1.6.2。 - Stumbleine75
我的错,我一开始没有看到3.2版本。它应该像1.6.2版本一样“只需工作”。虽然没有64位安装程序。你使用的是64位Python安装吗?错误消息仍然表明DLL不是正确的类型。 - Mark Tolonen
如果你问我安装的是哪个版本的Python,我想我安装的是64位版本。然而,我一直以为32位模块应该可以与64位的Python一起使用(对吧?我不确定,这只是猜测)。无论如何,我安装了1.6.2版本并尝试导入,但没有成功。然而,我没有卸载1.7.0版本,因为我没有看到卸载选项。 - Stumbleine75
不,如果你使用的是64位Python,则需要64位扩展。但是,在64位Windows上,你可以通过32位Python运行32位扩展。 - Mark Tolonen
1个回答

3
您的Python版本和numpy版本不匹配,可能是32位和64位的不匹配。如果您使用的是32位版本的Python,则必须使用任何预编译DLL的32位版本。而64位的Python则需要与预编译DLL一起使用64位版本的库。
纯Python库不受影响,但包含编译代码的任何库必须与Python本身匹配。

这有点晚了,但我该怎么办呢?我安装了1.6.2版本,但在导入numpy时仍然出现错误。难道我需要另一个Python版本,因为只有一个适用于Python 3.2的numpy 1.6.2吗? - Stumbleine75
1
你有两个选择。如果要使用官方的numpy二进制文件,你需要安装32位版本的Python。这将限制你的内存使用量约为2GB。如果你想继续使用64位版本的Python,我建议尝试在http://www.lfd.uci.edu/~gohlke/pythonlibs/上提供的numpy二进制文件。 - casevh
非常感谢,我已经下载并安装了64位的numpy MKL 1.6.2文件,现在导入numpy时不再出现错误。 - Stumbleine75

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接