Найти - Пользователи
Полная версия: Кириллица Python Linux ошибка в кодировке
Начало » Python для новичков » Кириллица Python Linux ошибка в кодировке
1 2
Saturn
Добрый день. Подскажите, как с таким бороться, при print “Русские буквы” получается ошибка:
SyntaxError: Non-ASCII character
Я что-то думал что в Linux файлы создаются по умолчанию в UTF-8.
Нашел такое решение:
# -*- coding: utf-8 -*-
Но может кто сталкивался с таким, что посоветуете.


s0rg
Saturn
что посоветуете.
1. Указать версию питона
2. Показать вывод locale
3. Показать код
4. Уточнить куда именно идет вывод - напрямую в консоль или через пайп в файл
Saturn
s0rg
1. Python 2.6.5
2.
 LANG=ru_UA.utf8
LANGUAGE=
LC_CTYPE="ru_UA.utf8"
LC_NUMERIC="ru_UA.utf8"
LC_TIME="ru_UA.utf8"
LC_COLLATE="ru_UA.utf8"
LC_MONETARY="ru_UA.utf8"
LC_MESSAGES="ru_UA.utf8"
LC_PAPER="ru_UA.utf8"
LC_NAME="ru_UA.utf8"
LC_ADDRESS="ru_UA.utf8"
LC_TELEPHONE="ru_UA.utf8"
LC_MEASUREMENT="ru_UA.utf8"
LC_IDENTIFICATION="ru_UA.utf8"
LC_ALL=
3. Это код на котором я проверяю Кириллицу
#!/usr/bin/python
print “Русские буквы”
4. В консоль “Sublime” редактора

А если обновить до Python =>3 , то проблема будет или нет?
s0rg
Для 2.x
print u'Русские буквы'
В 3 - такой проблемы нет, вопрос лишь в том, чтобы под 3-ку были нужные вам библиотеки )
kmike
s0rg
Для 2.x
print u'Русские буквы'
В 3 - такой проблемы нет, вопрос лишь в том, чтобы под 3-ку были нужные вам библиотеки )

SyntaxError никакого отношения к u'Русские буквы' vs ‘Русские буквы’ не имеет.
# -*- coding: utf-8 -*-
- правильный ответ на исходный вопрос.

Другое дело что при выводе в консоль можно разные неожиданности подхватить, но в современных linux и MacOs вывод в консоль должен работать как для байтовых строк, так и для юникода.
Saturn
В результате установил я Python 3 по такому примеру

Но выходит что по умолчанию стоит версия 2.6, а как можно заменить на ново-установленную версию ?
при команде python3 выводит Python 3.1.2.
а при команде python -varsion выводит выводит Python 2.6.5
fata1ex
Не торопитесь ничего заменять. Просто запускайте python3.
cutwater
1. Установка другой версии Python Вам не поможет. Необходимо разбираться в причинах проблемы
2. Вы уверены, что изменив в системе python на 3 Вы ничего не сломаете? У вас почти наверняка в системе используется python и некоторые сервисы вполне сойдут с ума, если Вы так сделаете.
Поэтому правильный выход из этой ситуации настроить виртуальное окружение для python3.
Тогда и python будет тройкой и система останется в безопасности и работать в виртуальном окружении удобней.

Собственно у меня сейчас так и настроены разные virtualenv для версиий 2.7 и 3.2.
Saturn
fata1ex
Я уже явно не тороплюсь, после того как по ошибке день назад набрал в консоли apt-get remove python. :)
Я пробовал запустить с таким заголовком #!/usr/bin/env python3, но та же ошибка выходит.

cutwater
Я что-то не подумал действительно над этим, но к счастью для себя еще ничего не пробовал менять. А как понять ?
настроить виртуальное окружение для python3
cutwater
Погуглите по ключевым словам pip и virtualenv
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB