如何让32位模块在64位Python上运行?

6 投票
1 回答
5737 浏览
提问于 2025-04-18 06:34

我写了一个使用inspyred库的遗传算法程序,运行在64位的Win7机器上,使用的是32位的Python2.7版本。在生成种群时,程序在使用内存达到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上运行?还有,能不能有人解释一下编译源代码的过程,以及这是否能帮到我?

1 个回答

8

答案很简单——它无法工作。一个程序要么是32位,要么是64位,就是这么简单。所以如果有一个模块不能在64位下运行,除了把这个模块重新编译成64位之外,另一个选择就是把它的功能交给一个在32位下运行的第二个程序,专门做这个事情。这种做法是否可行,取决于这个模块的实际任务。

撰写回答