Hallo Zusammen
Ich habe ein Programm mit wxWidgets (2.6) in Python (2.4) geschrieben. Teil des Programms ist eine Dateioperationen.py über die ich Dateien speichere und lade. Das klappt auch super. Aber wenn ich mit py2exe eine einzelene Exe-datei mache, klappt nur noch das Speichern und das Lasen schlägt immer fehl.
Ist das bekannt, kann ich das umgehen?
Soll ich den Quellcode der Dateioperationen hier posten oder lieber gleich einen link zum gesamten Programm?
Liebe Grüße
Jules
Problem beim Datei-speichern und -laden nach py2exe
- DatenMetzgerX
- User
- Beiträge: 398
- Registriert: Freitag 28. April 2006, 06:28
- Wohnort: Zürich Seebach (CH)
Wenn das lesen fehlschlägt muss es ein traceback geben (Posten)
code wäre auch nicht schlecht
code wäre auch nicht schlecht
Traceback (most recent call last):
File "simulation.py", line 401, in OnClick_Read
File "fileoperation.pyo", line 18, in readSettings
File "pickle.pyo", line 1390, in load
File "pickle.pyo", line 872, in load
File "pickle.pyo", line 985, in load_string
LookupError: unknown encoding: string-escape
Und der entsprechende Code:
Soll das String-Escape darauf hinweisen dass filename falsch ist? Weil der kommt von hier...
[/code]
File "simulation.py", line 401, in OnClick_Read
File "fileoperation.pyo", line 18, in readSettings
File "pickle.pyo", line 1390, in load
File "pickle.pyo", line 872, in load
File "pickle.pyo", line 985, in load_string
LookupError: unknown encoding: string-escape
Und der entsprechende Code:
Code: Alles auswählen
def readSettings(filename):
fh = open(filename,"r")
punkte = points.Points()
temp = pickle.load(fh) # <----- line 18
for i in range(temp.getLength()):
punkte.addPoint(temp.getXPixel(i),temp.getYPixel(i))
distance=pickle.load(fh)
speed=pickle.load(fh)
return punkte,distance,speed
fh.close
Code: Alles auswählen
dlg = wx.FileDialog(
self, message=u"Datei auswählen", defaultDir=os.getcwd(),
defaultFile=const.FILENAME,wildcard=const.WILDCARD,
style=wx.OPEN | wx.HIDE_READONLY)
if dlg.ShowModal() == wx.ID_OK:
path = dlg.GetPaths()
dlg.Destroy()
myvar=fileoperation.readSettings(path[0])
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi JulesV!JulesV hat geschrieben:Das Problem besteht immernoch (wie gesagt, nur nach der Verwendung von py2exe)
Probiere mal das in dein Programm einzubauen.
Code: Alles auswählen
import encodings, encodings.ascii, encodings.utf_8, encodings.iso8859_1, \
encodings.iso8859_15, encodings.string_escape
try:
import encodings.mbcs, encodings.cp850
except:
pass
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Juchugerold hat geschrieben:Probiere mal das in dein Programm einzubauen.


Jippie, soweit ich das sehe habe ich jetzt alle (mir bekannten Bugs) behoben. Noch schnell die Doku fertig schreiben und dann die 6 Klausuren lernen ... :-/
Ach ja, es hat schon gereicht nur
import encodings.string_escape
einzufügen. Gibt es einen Grund den Rest drinnen zu lassen? Könnte das Weglassen der anderen imports nachträglich irgendwelche Probleme verursachen?
Liebe Grüße und den aller aller größten Dank den du dir vorstellen kannst

Jules
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Jules!JulesV hat geschrieben:Gibt es einen Grund den Rest drinnen zu lassen? Könnte das Weglassen der anderen imports nachträglich irgendwelche Probleme verursachen?
Ich wollte dich nur vor eventuell auftretenden Umlautproblemen bewahren. Lass sie drinnen. Schaden kann es ja nicht.
lg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.