Encoding-Fehler in PyMca

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
Chemlab1982
User
Beiträge: 2
Registriert: Donnerstag 12. Mai 2011, 13:27

Hallo an alle im Python-Forum,

als Chemie-Student soll ich zur Auswertung von Messdaten eine spezielle Software namens PyMca verwenden. Dieses pythonbasierte Programm kann normalerweise einfach installiert werden und anschließend lassen sich die Daten (Spektren), welche zuvor aus der Mess-Software als Ansi file (.txt) exportiert wurden öffnen.

Leider erhalte ich auf meinem Laptop sowie und meinem Computer zu Hause folgende Fehlermeldung:
Traceback (most recent call last):
File "build\PyMca\QSourceSelector.py", line 140, in _openFileSlot
File "build\PyMca\QSourceSelector.py", line 216, in _openFile
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 29
ordinal not in range(128)

Auf meinem Laptop sind Python 2.6 und 2.7 installiert.

Ich habe bereits versucht die Ursache nachzuvollziehen, doch da ich nahezu keine Kenntnisse zur Programmierung aufweise, scheitere ich dabei.

Andere Mitarbeiter der Universität haben das Programm ebenfalls einfach installiert und können die selben Dateien einfach öffnen.

Offensichtlich handelt es sich um ein Kodierungsproblem von Zeichensätzen. Kann mir jemand näheres dazu sagen?

Vielen Dank im Vorraus

Gruß Mario
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Du hast Umlaute in deinen Daten und das Programm rechnet nicht damit.
Chemlab1982
User
Beiträge: 2
Registriert: Donnerstag 12. Mai 2011, 13:27

Hallo mkesper,

leider nicht. Die Daten bestehen lediglich aus zwei Datenreihen die durch ein Semikolon als Separator. Beim schreiben der Antwort fiel mir ein das im Dateipfad ein Umlaut auftauch und das war der Grund. :D

Danke für deine Hilfe und schnelle Antwort.

Gruß Mario
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Sowas sollte natürlich nicht zum Tod des Programms führen, aber z.B. US-Coder haben das Problem ja nicht. :)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ich habe mir den Quellcode (aktuelle Version auf sourceforge) mal angeguckt und konnte da den Fehler nicht nachvollziehen. Augenscheinlich wird da Python3 verwendet. Evtl. schlägt da das Problem zu Buche, dass bei einem `print` die Unicodestrings sich nicht nach dem Shell-Encoding richten? Iirc hatten wir diese Problematik mal vor einigen Wochen besprochen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Seltsam, der OP verwendet nach seinen Angaben Python 2.x.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

mkesper hat geschrieben:Seltsam, der OP verwendet nach seinen Angaben Python 2.x.
Kann sein, dass die aktuelle Version bereits Python3 verwendet und der OP eine andere benutzt. Oder aber die Entwickler sind dermaßen schlecht, dass sie `print` als Funktion tarnen, indem sie Tupel ausgeben... :roll:
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten