我有一个依赖于lxml的wxpython应用程序,并且在通过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允许您指定其他软件包/模块,以便在未自动检测到时将其添加到optionssetup()参数中。以下应该工作:

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/

10-13 07:00