Py2exe lxml的问题

时间:2011-03-15 07:38:51

标签: python wxpython lxml py2exe

我有一个依赖于lxml的wxpython应用程序,并且在通过python解释器运行时效果很好。但是,当使用py2exe创建一个exe时,我收到了这个错误

ImportError: No module named _elementpath

然后我使用python setup.py py2exe -p lxml并且我没有得到上述错误但是 另一个人说

ImportError: No module named gzip

有谁能让我知道问题是什么以及我如何解决它。我也应该放任何 我的dist文件夹中的DLL文件如libxml2,libxslt等?我搜索了电脑 并没有找到这些文件,所以也许不需要它们?

感谢。

编辑:我刚尝试使用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

错误。之后不知道怎么办。

2 个答案:

答案 0 :(得分:41)

Py2exe允许您指定要包含options参数的其他包/模块setup(),以防它们未被自动检测到。以下应该有效:

from distutils.core import setup
import py2exe

setup(
    windows=[{'script': 'gui.py'}],
    options={
        'py2exe': 
        {
            'includes': ['lxml.etree', 'lxml._elementpath', 'gzip'],
        }
    }
)

我最近还发现了PyInstaller,它内置了对众多知名软件包的支持,包括lxml,所以这也值得一试。

答案 1 :(得分:0)

有时,您需要在修改year[2]文件后再执行其他操作。

如上所述here, 如果软件包安装在" eggs"上,则必须卸载软件包。存档。 然后通过强制easy_install使用" -Z"解压缩存档来再次安装它。选项如下(我有paramiko包的问题):

ALTER TABLE `your_database`.`your_table` ADD UNIQUE INDEX `index_name` (`first_col` ASC, `second_col` ASC);