【发布时间】:2014-07-02 20:49:57
【问题描述】:
我在 64 位 Win7 机器上使用 32 位 Python2.7 版本的 inspyred 库编写了一个遗传算法程序。在生成人口时,程序在使用高达 1959044K 的内存时停止运行。
我已阅读此站点上的许多问题,并且我了解这是由于操作系统对 32 位程序设置了 2GB 上限。所以我尝试切换到 64 位 Python 并安装我正在使用的模块的 64 位版本,不幸的是,除了一个模块之外的所有模块都无法在 64 位平台上运行。
我还按照另一个问题中的建议安装了 pywin32,但这也无济于事。该模块不是标准的 Python 库,我已将其粘贴在下面。我得到的错误信息是:
import AoN
ImportError: DLL load failed: %1 is not a valid Win32 application.
我的理解是64位Python不识别32位模块。我也在这里读到:http://effbot.org/zone/python-compile.htm 关于编译源代码,但我已经编译了 64 位源代码,但这也无济于事,因为它继续给出该错误。
最后我将模块的目录路径粘贴到解释器路径中,但这也无济于事。
有没有办法让这个模块在 64 位 Python 上运行? 请任何人解释编译源代码的过程,如果可以帮助我吗?
【问题讨论】:
-
尝试获取(如果没有)Microsoft Visual C++ 2008 Express Edition(免费),安装它,然后转到
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC,打开命令提示符并输入vcvarsall amd64将编译器设置为 64 位模式。然后尝试重新编译您的自定义模块,看看它是否有效。 -
如果问题是它无法导入
AoN,向我们展示这段 Python 代码将无济于事。只要存在适用于正确版本的任何 C 扩展模块,Python 代码就可以在 64 位或 32 位上正常运行。 numpy 和 scipy 可用于 64 位 Python。如果 AoN 是你用 C 编写的模块,你是如何编译它的? -
@BrenBram 我也安装了 numpy 和 scipy 64bits。仍然出现此错误。
标签: python python-2.7 32bit-64bit