I have a wxpython application that depends on lxml and works well when running it through the python interpreter. However, when creating an exe with py2exe, I got this error
Sometimes you will need to do another action more after modify the setup.py
file.
As described here, it should be necessary to uninstall the package if it is installed on "eggs" archive. Then install it again by forcing easy_install to dezip the archive with the "-Z" option as following (I had the issue with paramiko package):
pip uninstall paramiko
easy_install -Z paramiko
Py2exe allows you to specify additional packages/modules to include with the options
argument to setup()
, in case they are not automatically detected. The following should work:
from distutils.core import setup
import py2exe
setup(
windows=[{'script': 'gui.py'}],
options={
'py2exe':
{
'includes': ['lxml.etree', 'lxml._elementpath', 'gzip'],
}
}
)
I've also recently discovered PyInstaller, which has built-in support for a number of well-known packages, including lxml, so that might be worth a try as well.