Problem beim ertsellen einer exe-Datei mit py2exe

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo WxPython Freunde

Ich habe mein erstes grössere wxPython-Projekt erstellt. Nun möchte ich es mit px2exe in eine ausführbare exe-Datei unter Windows-Vista umwandeln. Der Prozess mit 'python setup.py py2exe' verläuft normal. Wenn ich nun die im dist-Verzeichnis erstellte exe-Datei ausführe gibt es ein Dialogfenster, welches auf das lesen der log-Datei hinweist. In dieser log-Datei steht nun folgendes:

Code: Alles auswählen

Traceback (most recent call last):
  File "puzzle_app_04_01.py", line 182, in <module>
  File "puzzle_app_04_01.py", line 158, in main
  File "puzzle_control_04_01.pyc", line 72, in __init__
  File "puzzle_control_04_01.pyc", line 351, in read_last_game_nr
  File "shelve.pyc", line 225, in open
  File "shelve.pyc", line 208, in __init__
  File "anydbm.pyc", line 62, in <module>
ImportError: no dbm clone found; tried ['dbhash', 'gdbm', 'dbm', 'dumbdbm']
Besonders die Zeile:

Code: Alles auswählen

ImportError: no dbm clone found; tried ['dbhash', 'gdbm', 'dbm', 'dumbdbm']
deutet darauf hin, dass es irgendwie Probleme mit dem Modul 'anydbm', welches vom Modul 'shelve' benötigt wird, gibt. Mein Projekt läuft aber sonst unter Vista zusammen mit dem Python-Interpreter problemlos ohne Fehlermeldung abzuwerfen.

Was könnte man hier unternehmen. Bin für jede Antwort von euch dankbar.

Gruss wuf :wink:
Take it easy Mates!
fhoech
User
Beiträge: 143
Registriert: Montag 9. April 2007, 18:26

Scheint mir ein Problem mit anydbm und py2exe zu sein - gehört wohl eher ins allgemeine oder Inst./Konf.-Forum.
Google mal nach "py2exe anydbm", die ersten paar Treffer sollten weiterhelfen :)
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo fhoech

Danke für deinen Hinweis. Man vergisst in der Hitze des Gefechtes immer wieder, dass einem eine weltweite Datenbank zur Verfügung steht und andere Leute gibt die sich mit dem gleichen Problem herumschlagen. Du hattest recht der erste Treffer präsentierte schon die Lösung. Habe einfach neben dem shelve-Modul noch das dbhash- und anydbm-Modul importieren müssen und die Sache funktioniert jetzt ohne Probleme.

Nicht verzagen *Google* fragen!!! :D

Thanks!
Gruss wuf :wink:
Take it easy Mates!
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Wenn du mit importieren das importieren im Code meinst, dann solltest du das lieber py2exe ueber die setup.py erledigen lassen, statt unnoetig noise im Code zu generieren.

Das ganze geht ueber

Code: Alles auswählen

setup(
    options = { 'py2exe' : { 'includes' : ['dbhash', 'anydbm']}
)
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo cofi

Habe leider noch zu wenig Erfahrung mit py2exe. Danke für den lehrreichen Tipp. Gefällt mir auch besser.

Gruss wuf :wink:
Take it easy Mates!
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo Cofi

Habe natürlich dein Tipp sofort angewandt. Lief nicht auf Anhieb. Der Grund war eine Kleinigkeit:

Code: Alles auswählen

setup( 
    options = { 'py2exe' : { 'includes' : ['dbhash', 'anydbm']}},
)
Übrigens benötige ich scheinbar nur das dbhash-Modul.

Nochmal Danke!

Gruss wuf :wink:
Take it easy Mates!
Antworten