我有一个 wxpython 应用程序,它依赖于 lxml,并且在通过 python 解释器运行它时运行良好。但是,当使用 py2exe 创建一个 exe 时,我得到了这个错误
ImportError: No module named _elementpath
然后我使用 python setup.py py2exe -p lxml
并没有收到上述错误,但是
另一种说法
ImportError: No module named gzip
谁能告诉我问题是什么以及如何解决它。我也应该放任何 我的 dist 文件夹中的 libxml2、libxslt 等 dll 文件?我搜了电脑 并没有找到这些文件,所以也许它们不需要?
谢谢。
编辑:我刚刚尝试使用 python setup.py py2exe -p -i gzip
并创建了 exe。但是生成的exe没有运行。我双击它,它什么也没做。
这是我正在使用的 setup.py 脚本
from py2exe.build_exe import py2exe
from distutils.core import setup
setup( windows=[{"script": "gui.py"}] )
Edit2:我尝试使用 cx_freeze 作为替代方案,但得到了相同的结果
ImportError: No module named _elementpath
错误。之后就不知道怎么办了。
最佳答案
Py2exe 允许您在 setup()
的 options
参数中指定要包含的其他包/模块,以防它们未被自动检测到。以下应该有效:
from distutils.core import setup
import py2exe
setup(
windows=[{'script': 'gui.py'}],
options={
'py2exe':
{
'includes': ['lxml.etree', 'lxml._elementpath', 'gzip'],
}
}
)
我最近还发现了PyInstaller ,它内置了对包括 lxml 在内的许多知名包的支持,因此也值得一试。
关于python - Py2exe lxml 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5308760/