Py2exe lxml

Mam aplikację wxpython, która zależy od lxml i działa dobrze podczas uruchamiania go przez interpreter Pythona. Jednak podczas tworzenia exe z py2exe, mam ten błąd

ImportError: No module named _elementpath

Potem użyłem python setup.py py2exe -p lxml i nie dostałem powyższego błędu, ale kolejny mówiący

ImportError: No module named gzip
Czy ktoś mógłby mi powiedzieć, w czym tkwi problem i jak mogę go rozwiązać? Również należy umieścić jakiekolwiek pliki dll, takie jak libxml2, libxslt itp. w moim folderze dist? Przeszukałem komputer. i nie znalazł tych plików, więc może nie są potrzebne? Dzięki.

Edit: właśnie próbowałem z python setup.py py2exe -p -i gzip i EXE został stworzony. Ale wygenerowany exe nie działa. Klikam dwa razy i nic nie robi.

Oto setup.py skrypt, którego używam

from py2exe.build_exe import py2exe
from distutils.core import setup

setup( windows=[{"script": "gui.py"}] )



Edit2: próbowałem użyć cx_freeze jako alternatywy, ale dostałem to samo

ImportError: No module named _elementpath

Błąd. Nie wiedziałem, jak dalej postępować.

Author: jack the lesser, 2011-03-15

2 answers

Py2exe pozwala określić dodatkowe pakiety / moduły do dołączenia z argumentem options do setup(), jeśli nie zostaną one automatycznie wykryte. Powinno działać:

from distutils.core import setup
import py2exe

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

Niedawno odkryłem równieżPyInstaller , który ma wbudowaną obsługę wielu znanych pakietów, w tym lxml, więc może warto spróbować.

 40
Author: Steven,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-15 09:25:46

Czasami po zmodyfikowaniu pliku setup.py będziesz musiał wykonać jeszcze jedną akcję.

Zgodnie z opisem tutaj , należy odinstalować pakiet, jeśli jest zainstalowany w archiwum "eggs". Następnie zainstaluj go ponownie, zmuszając easy_install do dezipu archiwum z opcją "- Z " w następujący sposób (miałem problem z pakietem paramiko):

pip uninstall paramiko
easy_install -Z paramiko
 0
Author: Progsam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-26 15:17:11