jac*_*ser 25 python lxml wxpython py2exe
我有一个依赖于lxml的wxpython应用程序,并且在通过python解释器运行时效果很好.但是,当使用py2exe创建一个exe时,我收到了这个错误
ImportError: No module named _elementpath
Run Code Online (Sandbox Code Playgroud)
我然后使用了python setup.py py2exe -p lxml ,我没有得到上述错误,但另一个说
ImportError: No module named gzip
Run Code Online (Sandbox Code Playgroud)
任何人都可以让我知道问题是什么以及如何解决它.我还应该在我的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"}] )
Run Code Online (Sandbox Code Playgroud)
Edit2:我尝试使用cx_freeze作为替代方案,但得到了相同的结果
ImportError: No module named _elementpath
Run Code Online (Sandbox Code Playgroud)
错误.之后不知道该怎么办.
Ste*_*ven 41
Py2exe允许您指定要包含options参数的其他包/模块setup(),以防它们未被自动检测到.以下应该有效:
from distutils.core import setup
import py2exe
setup(
windows=[{'script': 'gui.py'}],
options={
'py2exe':
{
'includes': ['lxml.etree', 'lxml._elementpath', 'gzip'],
}
}
)
Run Code Online (Sandbox Code Playgroud)
我最近还发现了PyInstaller,它内置了对许多知名软件包的支持,包括lxml,所以这也值得一试.