Mit Pyinstaller Python zur exe und mechanize

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Tobies
User
Beiträge: 7
Registriert: Montag 2. November 2009, 10:23

Hallo,

ich habe schon die Such-Funktion verwendet und auch folgendes Thema gefunden:

http://www.python-forum.de/topic-20391.html?highlight=

da hier aber leider der Ersteller nicht zurück geschrieben wurde das Problem auch nicht gelöst.

Ich habe ein Skript ganz einfach das mit mechanize eine Seite aufruft sich einlogt und wieder aus. Das Skript funktioniert einwandfrei. Nun wollte ich eine exe daraus machen mit pyinstaller 1.3.

Als erstes mache ich die *.spec Datei

Code: Alles auswählen

makespec.py skript.py
Danach mach ich die *.exe

Code: Alles auswählen

Build.py skript.spec
Das klappt auch alles wenn ich nun aber das Skript ausführe bekomme ich mehrere import errors.

Ich denke das ich etwas in der makespec.py ändern muss hab aber keine Idee wie das auszusehen hat :?:

Ich hoffe ich habe mich verständlich ausgedrückt :)

mfg
fhoech
User
Beiträge: 143
Registriert: Montag 9. April 2007, 18:26

(...) bekomme ich mehrere import errors
Wäre schon hilfreich zu wissen, was für Fehler genau auftreten. Aber zuallererst solltest Du eine aktuellere Pyinstaller-Version benutzen, 1.3 ist inzwischen veraltet. Versuch mal stattdessen den 1.4 Pre-Release Snapshot. Btw, Pyinstaller unterstützt in der aktuellen Version unter Windows offiziell nur bis zu Python 2.5. Es gibt aber ein Patch für 2.6-Support, falls benötigt.
paeppi_79
User
Beiträge: 27
Registriert: Montag 13. Juli 2009, 19:33

Tobies,

benutzt du vielleicht Tkinter, Bilder, icons... in deinem script. Dies alles muss man in der makespec mit eintragen.

Sieh mal hier nach:

http://www.marcogabriel.com/blog/archiv ... eilen.html
Tobies
User
Beiträge: 7
Registriert: Montag 2. November 2009, 10:23

Das wird mir gesagt:

Code: Alles auswählen

Traceback <most recent call last>:
              File "<string>", line2, in <module>
              File "C:\Python25\trunk\iu.py", line 458, in importHook
                 raise ImportError, "No module named %s" % fqname
Import Error: No module named mechanize
 
@paeppi_79: Genau die Seite hab ich auch gefunden. Das Problem ist nur das ich nicht weiß was ich darein schreiben muss. Das hab ich ja auch schon im ersten Post erwähnt.

Ich verwende keine Bilder, Icons und co nur mechanize.
fhoech
User
Beiträge: 143
Registriert: Montag 9. April 2007, 18:26

Scheint als wäre Pyinstallers EGG-Unterstützung noch fehlerhaft. Versuch mal folgendes:

Lösche die beiden Dateien ClientForm-0.2.10-py2.5.egg und mechanize-0.1.11-py2.5.egg aus Deinem Python25\Lib\site-packages Verzeichnis oder benenn sie um. Dann installiere mechanize entpackt per easy_install:

C:\Python25\Scripts\easy_install.exe -Z mechanize
Tobies
User
Beiträge: 7
Registriert: Montag 2. November 2009, 10:23

Super Danke!

Da wäre ich nie drauf gekommen, weil es immer funktioniert hatte. Ich kann jetzt das Skript als exe ausführen.

Pyinstaller hat jetzt einen Ordner mit mehrern Datein was muss ich in der makespec.py schreiben damit ich nur eine einizge habe?
fhoech
User
Beiträge: 143
Registriert: Montag 9. April 2007, 18:26

Das wäre die Option -F für makespec.py, siehe auch Pyinstaller-Dokumentation:

makespec.py -F skript.py
Tobies
User
Beiträge: 7
Registriert: Montag 2. November 2009, 10:23

Super hat funktioniert!

Und ich dachte ich müsste in der makespec.py etwas umschreiben :oops: .

Vielen Dank :!:
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

fhoech hat geschrieben:
(...) bekomme ich mehrere import errors
Wäre schon hilfreich zu wissen, was für Fehler genau auftreten. Aber zuallererst solltest Du eine aktuellere Pyinstaller-Version benutzen, 1.3 ist inzwischen veraltet. Versuch mal stattdessen den 1.4 Pre-Release Snapshot. Btw, Pyinstaller unterstützt in der aktuellen Version unter Windows offiziell nur bis zu Python 2.5. Es gibt aber ein Patch für 2.6-Support, falls benötigt.
Wie kann ich den patch unter Windows einspielen??
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

mathi hat geschrieben:Wie kann ich den patch unter Windows einspielen??
Es gibt für Windows Ports des Unix-Tools "patch", damit geht das wie unter Unix auch.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
fhoech
User
Beiträge: 143
Registriert: Montag 9. April 2007, 18:26

Oder TortoiseSVN nutzen, das bringt dafür auch eine GUI mit.
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

@fhoech:

Danke, hat wunderbar geklappt :-))))
Antworten