pyAA与py2exe结合使用
有没有人能让 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。