Seite 1 von 1
lxml und py2exe
Verfasst: Donnerstag 8. Januar 2009, 12:44
von Janux
Hallo!
Ich möchte mit py2exe eine .exe von meinem Programm erstellen.
Das comilieren funktioniert ohne Fehlermeldung, aber wenn ich das
Programm starten will kommt folgende Fehlermeldung (wegen lxml):
Code: Alles auswählen
Traceback (most recent call last):
File "PyQuizzer.py", line 3, in <module>
File "questions.pyc", line 4, in <module>
ImportError: No module named _elementpath
Traceback (most recent call last):
File "PyQuizzer.py", line 3, in <module>
File "questions.pyc", line 4, in <module>
ImportError: No module named _elementpath
Ich habe bei Google theoretisch schon eine Lösung gefunden,
nur versteh ich sie leider nicht.
http://codespeak.net/pipermail/lxml-dev ... 02909.html
Kann mir bitte jemand von euch erklären wie ich das Programm zum laufen kriege?
Verfasst: Donnerstag 8. Januar 2009, 13:00
von C4S3
Schon mal auf der Py2Exe Website nachgeschaut, wie man module inkludiert?
http://www.py2exe.org
Verfasst: Donnerstag 8. Januar 2009, 13:08
von Janux
C4S3 hat geschrieben:Schon mal auf der Py2Exe Website nachgeschaut, wie man module inkludiert?
http://www.py2exe.org
Ich finde auf der Seite nichts zu lxml oder etree.
Verfasst: Donnerstag 8. Januar 2009, 13:12
von Hyperion
Verfasst: Donnerstag 8. Januar 2009, 13:21
von Janux
Das funktioniert auch nicht.
Verfasst: Donnerstag 8. Januar 2009, 13:22
von Hyperion
Janux hat geschrieben:
Das funktioniert auch nicht.
lol ... super Fehlerbeschreibung

Verfasst: Donnerstag 8. Januar 2009, 13:24
von Janux
Hyperion hat geschrieben:Janux hat geschrieben:
Das funktioniert auch nicht.
lol ... super Fehlerbeschreibung

Der Fehler ist der gleiche geblieben.
Edit: Ok, doch nicht
Jetzt steht
Code: Alles auswählen
Traceback (most recent call last):
File "PyQuizzer.py", line 3, in <module>
File "questions.pyc", line 2, in <module>
File "lxml\etree.pyc", line 12, in <module>
File "lxml\etree.pyc", line 10, in __load
File "parsertarget.pxi", line 4, in lxml.etree (src/lxml/lxml.etree.c:125768)
ImportError: No module named inspect
im logfile.
Verfasst: Donnerstag 8. Januar 2009, 13:33
von Hyperion
Py2exe-wiki hat geschrieben:
This will create a dist directory with all the files your embedded python needs. Rename library.zip to python23.zip and place all the files in the application directory.
Ich weiß jetzt nicht genau, was das bedeutet, aber anscheinend ist der obige "run" des Scriptes noch nicht dazu gedacht, eine .exe zu erstellen, sondern nur, die externen libs in einen Ordner zu pfrimeln. Hast Du das auch so befolgt?
Verfasst: Donnerstag 8. Januar 2009, 15:07
von Janux
Hyperion hat geschrieben:Py2exe-wiki hat geschrieben:
This will create a dist directory with all the files your embedded python needs. Rename library.zip to python23.zip and place all the files in the application directory.
Ich weiß jetzt nicht genau, was das bedeutet, aber anscheinend ist der obige "run" des Scriptes noch nicht dazu gedacht, eine .exe zu erstellen, sondern nur, die externen libs in einen Ordner zu pfrimeln. Hast Du das auch so befolgt?
Normalerweise sind die fertigen Programme in dem Ordner `dist`.
... und eine Datei `library.zip` gibt es bei mir nicht ...
Verfasst: Donnerstag 8. Januar 2009, 15:13
von Hyperion
Janux hat geschrieben:die fertigen Programme in dem Ordner `dist`.
... und eine Datei `library.zip` gibt es bei mir nicht ...
Ok, dann wird da wohl schon was schief laufen fürchte ich.
Verfasst: Donnerstag 8. Januar 2009, 15:21
von Trundle
Nicht zwingend, die Zip kann auch an die fertige Exe angehängt sein. Ich hätte einfach gesagt, dass man py2exe noch sagen muss, dass man inspect braucht. lxml besteht eben teilweise aus C-Modulen, und da kann py2exe nicht feststellen, ob die von anderen Modulen abhängig sind.
Verfasst: Donnerstag 8. Januar 2009, 16:44
von Janux
Trundle hat geschrieben:Nicht zwingend, die Zip kann auch an die fertige Exe angehängt sein. Ich hätte einfach gesagt, dass man py2exe noch sagen muss, dass man inspect braucht.
Wie meinst du das genau?
Verfasst: Donnerstag 8. Januar 2009, 18:54
von Trundle
Dass du an das "--includes lxml" eben noch ein ",inspect" hängen musst (oder so in die Richtung). Und eleganter wäre wohl eh, das alles in die setup.py direkt zu schreiben und nicht händisch beim Erstellen als Argument zu übergeben.
Verfasst: Freitag 16. Januar 2009, 21:41
von Janux
Ich habe die Lösung jetzt von jemandem auf der py2exe Mailing-Liste
bekommen. Der Vollständigkeit halber poste ich sie hier nochmal ...
Code: Alles auswählen
from distutils.core import setup
import py2exe
opts = {"py2exe": {"packages": ["lxml"]}}
setup(windows=["questions_clue_cards.py"],zipfile=None,name="test",
version="1.0", options=opts
)
Danke für eure Bemühungen!
Re: lxml und py2exe
Verfasst: Mittwoch 23. Oktober 2013, 09:41
von Danielr
sorry das ich hier in dem alten thread poste
aber um lxml erfolgreich zu importieren musste ich noch
"includes": ["inspect"]
einfügen. vielleicht hilft es ja jemanden der auch Probleme hat
Code: Alles auswählen
from distutils.core import setup
import py2exe
opts = {"py2exe": {"packages": ["lxml"], "includes":["inspect"]}}
setup(windows=["euerprogramm.py"],zipfile=None, name="test",
version="1.0", options=opts)