2013-03-01 11 views
8

Uruchamiając mój skrypt python3 z Sublime Text 2 dodaje się błąd occures:Sublime Text 2 Błąd kodowania z python3 budować

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128) 

Ponadto, gdy uruchomiony ten sam skrypt z terminala, problem nie pojawia .

ustawieniach systemu budowania Sublime jest następujący:

{ 
"cmd": ["python3", "-u", "$file"], 
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
"selector": "source.python", 
"encoding": "utf8", 
"path": "/Library/Frameworks/Python.framework/Versions/3.3/bin/" 
} 

Z góry dzięki!

Odpowiedz

28

Po pewnym dochodzenia i badań, zorientowali się, w czym jest problem:

Brakujące zmienną env LANG w podproces, prowadził przez Sublime Text 2. Naprawiłem go po prostu dodając zmienną LANG w ustawieniach kompilacji jak więc:

{ 
"cmd": ["python3", "-u", "$file"], 
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
"selector": "source.python", 
"env": {"LANG": "en_US.UTF-8"} 
} 
+0

Świetnie! Rozwiązałem mój problem. – jostyposty

+1

Awesome! Działa również dla Sublime Text 3 – chris838

+1

Tak więc właśnie miałem opublikować to pytanie jako odpowiedź, ale domyślam się, że po prostu komentarz tutaj. Próbowałem tego i to nie działało. Może, ponieważ pracuję na Macu. Co dla mnie nie było ustawienie zmiennej LANG env, ale LC_CTYPE na "UTF-8". Dosłownie szukałem 3 godzin, lewe ślady zębów w moim blacie i dlatego może to pomaga. – Ekkstein

1

Rozwiązania Martina działały świetnie! W środowisku Windows/Python3.5 zamiast "LANG" ustaw następujące opcje:

"env": {"PYTHONIOENCODING": "utf8"}