我有一个依赖于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
错误。之后不知道怎么办。
答案 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);