Fehler, der nur beim Start über cmd auftaucht

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
user47alpha
User
Beiträge: 3
Registriert: Dienstag 25. Mai 2010, 13:03

Hi,

ich programmiere (Python 2.6) mit Eclipse und habe folgendes Problem:

Wenn ich das Script über Eclipse starte, funktioniert es einwandfrei. Wenn ich es aber in der Eingabeaufforderung starte (sprich in den "SRC"-Folder navigiere und dort mittels "caller.py" zu starten versuche) erhalte ich folgende Fehlermeldung:

Code: Alles auswählen

>caller.py
Traceback (most recent call last):
  File "C:\Users\Ludger\Documents\Studium\studentische Hilfskraft\worcspace\elmar2gr\src\caller.py", line 12, in <module>
    shop.convert("input/test_shopinfo.xml")
  File "C:\Users\Ludger\Documents\Studium\studentische Hilfskraft\worcspace\elmar2gr\src\elmar2gr.py", line 106, in convert
    self.writeProdCSV()
  File "C:\Users\Ludger\Documents\Studium\studentische Hilfskraft\worcspace\elmar2gr\src\elmar2gr.py", line 663, in writeProdCSV
    fobj.write("""          <rdfs:comment xml:lang=\""""+self.language+"""\">"""
+compcomment+"""</rdfs:comment>\n""")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xfc in position 87: ordinal not in range(128)
Bekäme ich einen ähnlichen Fehler auch unter Eclipse, würde ich den Fehler bei den Variablen suchen, so muss ich wahrscheinlich nur den richtigen Parameter an > caller.py anhängen... hoffe ich.

Wer kann mir helfen?
Danke!
BlackJack

@user47alpha: Du vermischt dort anscheinend `unicode`- und `str`-Objekte. Wenn man zum Beispiel zwei solcher Exemplare per ``+`` verbindet, dann wird das `str`-Objekt implizit in Unicode umgewandelt -- mit ASCII als Kodierung. Wenn der `str` zum Beispiel Werte ausserhalb von ASCII enthält, dann kommt diese Ausnahme.

XML würde ich übrigens mit einer entsprechenden Bibliothek zusammenbauen und nicht als Zeichenketten. Dann braucht man sich zum Beispiel keine Gedanken machen, was `compcomment` enthält.
user47alpha
User
Beiträge: 3
Registriert: Dienstag 25. Mai 2010, 13:03

Ja, ich sollte vielleicht eine XML-Lib dafür verwenden.

Aber trotzdem, wie kommt es, dass Eclipse durchaus damit zurecht kommt, die Konsole aber nicht?
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

user47alpha hat geschrieben:Aber trotzdem, wie kommt es, dass Eclipse durchaus damit zurecht kommt, die Konsole aber nicht?
Die Eclipse-Konsole hat einen größeren Zeichensatz wie die Standard-Shell. (Unter Windows auf jeden Fall)
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
Antworten