Problem beim Datei-speichern und -laden nach py2exe

Plattformunabhängige GUIs mit wxWidgets.
Antworten
JulesV
User
Beiträge: 16
Registriert: Sonntag 2. April 2006, 02:21

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
Benutzeravatar
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
JulesV
User
Beiträge: 16
Registriert: Sonntag 2. April 2006, 02:21

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:

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
Soll das String-Escape darauf hinweisen dass filename falsch ist? Weil der kommt von hier...

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])
[/code]
JulesV
User
Beiträge: 16
Registriert: Sonntag 2. April 2006, 02:21

Hat niemand eine Idee?
Das Problem besteht immernoch (wie gesagt, nur nach der Verwendung von py2exe) ... wenn ich das nicht *sehr* schnell beheben kann müsste ich es ohne py2exe abgeben, was ziemlich unangenehm wäre...
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

JulesV hat geschrieben:Das Problem besteht immernoch (wie gesagt, nur nach der Verwendung von py2exe)
Hi JulesV!

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
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
JulesV
User
Beiträge: 16
Registriert: Sonntag 2. April 2006, 02:21

gerold hat geschrieben:Probiere mal das in dein Programm einzubauen.
Juchu :-). Ich bin versucht zu sagen "was sollte ich nur ohne dich machen" :-)!
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 :-) *Freu*
Jules
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

JulesV hat geschrieben:Gibt es einen Grund den Rest drinnen zu lassen? Könnte das Weglassen der anderen imports nachträglich irgendwelche Probleme verursachen?
Hi Jules!

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.
Antworten