Py2exe lxml的问题

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,所以这也值得一试.