tutorial make how from create compile python wxpython lxml py2exe

make - python to exe



Py2exe lxml problemas (2)

Tengo una aplicación wxpython que depende de lxml y funciona bien cuando se ejecuta a través del intérprete de python. Sin embargo, al crear un archivo ejecutable con py2exe, recibí este error

ImportError: No module named _elementpath

Luego utilicé python setup.py py2exe -p lxml y no obtuve el error anterior, pero sí otro.

ImportError: No module named gzip

¿Alguien podría decirme cuál es el problema y cómo puedo solucionarlo? ¿También debería poner cualquier archivo dll como libxml2, libxslt, etc. en mi carpeta dist? Busqué en la computadora y no encontré estos archivos, ¿quizás no sean necesarios?

Gracias.

Edición: Acabo de intentar con python setup.py py2exe -p -i gzip y se creó el python setup.py py2exe -p -i gzip . Pero el exe generado no se ejecuta. Hago doble clic y no hace nada.

Aquí está el script setup.py que estoy usando

from py2exe.build_exe import py2exe from distutils.core import setup setup( windows=[{"script": "gui.py"}] )



Edit2: intenté usar cx_freeze como alternativa, pero obtuve lo mismo

ImportError: No module named _elementpath

error. No sabía cómo proceder después de eso.


A veces necesitará realizar otra acción más después de modificar el archivo setup.py .

Como se describe here , debería ser necesario desinstalar el paquete si está instalado en el archivo "eggs". Luego instálelo de nuevo forzando a easy_install a descomprimir el archivo con la opción "-Z" como sigue (tuve el problema con el paquete paramiko):

pip uninstall paramiko easy_install -Z paramiko


Py2exe le permite especificar paquetes / módulos adicionales para incluir con el argumento de las options de setup() , en caso de que no se detecten automáticamente. Lo siguiente debería funcionar:

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

También descubrí recientemente PyInstaller , que tiene soporte incorporado para una serie de paquetes conocidos, incluyendo lxml, por lo que también podría valer la pena intentarlo.