pyAA与py2exe结合使用

0 投票
4 回答
785 浏览
提问于 2025-04-16 02:01

有没有人能让 pyAA 和 py2exe 一起工作?你可以在 这里 下载 pyAA。

我这两天一直在尝试这个,但到现在还没找到解决办法。下面是一些示例文件:

hello.py

import pyAA
print "Hello, World"

setup.py

from distutils.core import setup
import py2exe

setup(console=['hello.py'],
      options = {"py2exe": {"bundle_files": 1}})

现在,如果我们运行:

 python setup.py py2exe

就会生成一个可执行文件。但是运行它时会出现以下错误:

Traceback (most recent call last):
File "hello.py", line 1, in ?
  File "zipextimporter.pyc", line 82, in load_module
  File "pyAA\__init__.pyc", line 1, in ?
  File "zipextimporter.pyc", line 82, in load_module
  File "pyAA\AA.pyc", line 8, in ?
  File "zipextimporter.pyc", line 82, in load_module
  File "pyAA\pyAAc.pyc", line 5, in ?
  File "zipextimporter.pyc", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading pyAA\_pyAAc.pyd

我尝试使用 dependency walker,但对结果没太搞明白。我尝试添加或删除一些 DLL 文件,但都没用。

附注 -> 请注意,如果不使用 bundle_files,它是可以正常工作的。但项目的一个要求是必须使用 bundle_file。

4 个回答

0

我自己也曾经和Py2Exe斗争过几次,把DLL文件和依赖项打包在一起通常会让人头疼。如果我没记错的话,可以试着把sys.exec_prefix添加到PATH环境变量中。这样程序就能找到IESHIMS.DLL文件了。

os.environ['PATH'] = os.sep.join([sys.exec_prefix, os.environ['PATH']])
0

当我安装了pyAA并运行依赖于_pyAAc.pyd的程序时,它告诉我缺少IESHIMS.DLL这个文件,不过这可能是因为我在使用Windows 7系统。

2

这种问题在使用py2exe时似乎很常见。你可以试试用其他的安装工具,比如PyInstaller

撰写回答