ich heiße Bernhard, melde mich zum ersten Mal im Forum. Ich habe vor vielen Jahren mal C auf dem Amiga 500 programmiert und jetzt -nach mehreren gescheiterten Versuchen Java zu lernen- jetzt mein erstes richtiges OO-Programm mit Python programmiert.
Ich kann mir vorstellen, dass Ihr py2exe nicht mehr hören könnt, aber ich habe wirklich die Suchefunktion und alles durch und keine Antwort für mein Problem gefunden:
Mein Programm ist letztlich ein ungewöhnliches Malprogramm. Der User malt in einem PIL-Image, dass in einer Tkinter-Umgebung dargestellt wird. Unter IDLE läuft alles problemlos. Nach Umwandlung mit py2exe startet das Programm problemlos, der User kann auch malen, aber das Abspeichern funktioniert nicht. Stattdessen wird eine Datei mit folgender Fehlermeldung angelegt:
Die Zeile 730 meines Programms "lichtmusik.py" lautetException in Tkinter callback
Traceback (most recent call last):
File "Tkinter.pyo", line 1345, in __call__
File "lichtmusik.py", line 730, in ebenenaufloesen
File "Image.pyo", line 1289, in save
KeyError: '.png'
Code: Alles auswählen
vorher : dateiname = tkFileDialog.asksaveasfilename(defaultextension='.png', filetypes=[('PNG-Datei','*.png'),\
('Alle Files','*.*')],title='E....
vorher : fertig=Image.new('RGB', (max_e*320+sp*.....
...
Zeile 730: fertig.save(dateiname)
Code: Alles auswählen
# setup.py fuer Lichtmusik
from distutils.core import setup
import py2exe
setup(
options = {"py2exe": {"compressed": 1,
"optimize": 2,
"ascii": 1,
"bundle_files": 3 }
},
windows=["lichtmusik.py"])
Nebenbei hätte ich eine weniger wichtige Frage 2: Ich würde gerne noch weniger Dateien erhalten. Wenn ich aber 'bundle_files' auf einen anderen Wert, sagen wir 1, setze, startet mein Programm zwar, beendet sich aber sofort selbst mit einem wenig aussagekräftigen Fenster "Microsoft C++ Runtime Library": "This application has requested the Runtime to terminate it in an unusual way..."
Vielen Dank allen, die sich um eine Antwort bemühen,
Gruß,
ein halb-verzweifelter
Bernhard