我正在尝试运行一个包含 pysvn 的 py2exe 程序(package.py)。它无法运行并出现以下错误:
Traceback (most recent call last):
File "package.py", line 27, in <module>
File "zipextimporter.pyc", line 82, in load_module
File "pysvn\__init__.pyc", line 99, in <module>
File "zipextimporter.pyc", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading pysvn\_pysvn_2_6.pyd
该脚本对办公室中的其他人运行良好,不同之处在于我使用的是 Windows 7 x64,而他们使用的是 WinXP x86。我的 pysvn 目录中有 _pysvn_2_6.pyd 。
Py2exe 的“要修复的问题”页面与 WxPython 有类似的错误消息,它找不到所需的系统模块,但我没有使用 WxPython,而且我有他们引用的 dll。
“使用各种包和模块”的 py2exe 页面没有引用 pysvn,我找不到其他有类似问题的人。
我已经按照这个答案的概述检查了 py2exe 的输出,但是我的计算机似乎在正确的位置具有所需的所有二进制文件。
编辑:我只是尝试在同一台机器上运行其他 py2exe 创建的程序,但它们也失败了。似乎问题出在我的机器(即 x64)上,而不是我正在转换的特定程序;我在另一个程序中遇到了类似的错误:
Traceback (most recent call last):
File "rundemo.py", line 13, in <module>
import win32api as w32
File "zipextimporter.pyc", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading win32api.pyd
EDIT2:我在 32 位机器上尝试了从我的 64 位 compy 生成的 py2exe 程序,但它们以同样的错误失败。我想我正在生成 32 位 exe(py2exe 文档说 64 位支持是实验性的,我没有明确打开它),但我不确定如何检查以确保。