Ich habe ein funktionierendes Skript zur Hand, während es auf der Spyder IDE und Python Shell läuft, wenn ich es einfach durch Doppelklick starte, es schließt sofort. Um das Problem zu verstehen, ich lief es über die Befehlszeile aus und begegnet den folgenden:UnicodeEncodeError: Script läuft auf Spyder und IDLE, aber nicht auf cmd prompt
Traceback (most recent call last):
File "C:\Users\Cheese\Desktop\demografik-proje\demo-form-v-0-1-3.py", line 314, in <module>
mainMenu(q_list, xtr_q_list)
File "C:\Users\Cheese\Desktop\demografik-proje\demo-form-v-0-1-3.py", line 152, in mainMenu
patient_admin = input("Testi uygulayan ki\u015fi: ") #the person who administrated the test
File "C:\Program Files\Python35\lib\encodings\cp850.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character '\u015f' in position 18: character maps to <undefined>
Diese Frage schon oft gefragt worden, aber warum ich frage ist, dieses Skript funktioniert in einigen Computern in Ordnung, nur per Doppelklick, funktioniert aber bei mir zum Beispiel nicht. Was könnte ich daraus entnehmen, dass mein Computer auf Englisch ist und die Computer, die laufen konnten, auf Türkisch waren?
Auch da Programm viele türkische Saiten hat, würde ich lieber nicht mit jeder einzelnen Saite herumspielen und lieber etwas auf die Spitze stellen oder sowas. Ich bin sogar bereit, eine Batch-Datei einzurichten, um das Skript in UTF8 auszuführen. Oder wenn ich es so einfrieren könnte, dass es UTF8 erkennt (das wäre zu bevorzugen)? Auch habe ich gerade überprüft, und das Programm funktioniert gut, wenn alle türkischen Zeichen entfernt werden. Wie erwartet.
Wenn es irgendeine Hilfe ist, läuft Spyder immer noch Python 3.5.1, ich habe 3.5.2 installiert und wenn ich einfach "Python" an der Eingabeaufforderung eingeben, läuft Python 3.5.2 ganz gut.
Nach der Code, wenn es jede Hilfe ist:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Block o' Code
"""
patient_admin = input("Testi uygulayan kişi: ") #the person who administrated the test
#gets input for all the data program needs
print("=======================================")
"""
More block o' code
"""
Das Problem ist der Zeichensatz, den 'cmd.exe' verwendet. – cdarke
Ihr Code ist (wahrscheinlich) in Ordnung (ich werde das ganze Zeug nicht durchlesen, Sie sollten Ihr Problem mit einem [mcve] veranschaulichen).Sie müssen jedoch das Terminal reparieren, auf dem der Code ausgeführt wird, sodass eine UTF-8-Codepage verwendet wird. Ich bin kein Windows-Benutzer, aber es gibt verschiedene SO-Antworten, die zeigen, wie man das durch Bearbeiten der Registrierung macht. In einer interaktiven Eingabeaufforderung können Sie 'chcp 65001' ausführen, bevor Sie Ihre Python-Skripte ausführen. Das ist natürlich keine Option beim Starten eines Skripts per Doppelklick. –
Die Antworten auf [Wie Unicode-Zeichensatz in cmd.exe standardmäßig erstellt wird?] (Http://stackoverflow.com/questions/14109024/how-to-make-unicode-charset-in-cmd-exe-by-default) scheinen ein paar Lösungen zu haben. –