【问题标题】:How to successfully import numpy using Python 3.x?如何使用 Python 3.x 成功导入 numpy?
【发布时间】:2012-08-16 02:01:39
【问题描述】:

类似于How to import numpy in python shell,但有不同的错误和上下文。

现在,解决问题。我成功地安装了 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 时没有发生这种情况,那么问题是什么?我知道不同的模块有不同的问题(例如必须制作注册表版本才能安装......)。出了什么问题,我该如何解决问题?我发现了类似的投诉here

【问题讨论】:

  • 您是从 SourceForge 上的 .exe 安装程序安装的吗?我没有看到 1.7.0 numpy 的。您是否使用了错误的安装程序?如果自己构建,错误表明它是 64 位构建并使用 32 位 Python。我在 Python 3.2 上使用了 1.6.2 安装程序,没有任何问题或 hack。
  • 我从这里得到了我的:sourceforge.net/projects/numpy/files/NumPy/1.7.0beta/…。如果这不起作用,我会尝试 1.6.2。
  • 我的错,我一开始没有看到3.2版本。它应该像 1.6.2 版本对我一样“正常工作”。但是,没有 64 位安装程序。您使用的是 64 位 Python 安装吗?错误消息仍然表明 DLL 不是正确的类型。
  • 如果你问我安装的 python 版本,我想我安装的是 64 位版本。但是,我一直认为 32 位模块应该 与 64 位 python 一起工作(对吗?我不确定,这纯粹是猜测)。无论如何,我安装了 1.6.2 并尝试导入无济于事。但是,我没有摆脱 1.7.0,因为我没有看到 unistall 选项。
  • 不,如果您有 64 位 Python,则需要 64 位扩展。不过,您可以在 64 位 Windows 上运行带有 32 位扩展的 32 位 Python。

标签: python import numpy


【解决方案1】:

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?
  • 你有两个选择。要使用官方的 numpy 二进制文件,您需要安装 32 位版本的 Python。这会将您的内存使用限制为 ~2GB。如果您想继续使用 64 位版本的 Python,我会尝试在 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 上提供的 numpy 二进制文件
  • 非常感谢,我下载并安装了 64 位 numpy MKL 1.6.2 文件,现在导入 numpy 时没有错误。
猜你喜欢
  • 2020-01-22
  • 1970-01-01
  • 2020-11-16
  • 2015-06-08
  • 2017-03-09
  • 2012-03-20
  • 2012-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多