Уведомления

Группа в Telegram: @pythonsu

#1 Март 26, 2012 16:33:10

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Кириллица Python Linux ошибка в кодировке

Добрый день. Подскажите, как с таким бороться, при print “Русские буквы” получается ошибка:

SyntaxError: Non-ASCII character
Я что-то думал что в Linux файлы создаются по умолчанию в UTF-8.
Нашел такое решение:
# -*- coding: utf-8 -*-
Но может кто сталкивался с таким, что посоветуете.




Офлайн

#2 Март 26, 2012 16:39:06

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Кириллица Python Linux ошибка в кодировке

Saturn
что посоветуете.
1. Указать версию питона
2. Показать вывод locale
3. Показать код
4. Уточнить куда именно идет вывод - напрямую в консоль или через пайп в файл

Офлайн

#3 Март 26, 2012 16:59:26

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Кириллица Python Linux ошибка в кодировке

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 , то проблема будет или нет?



Офлайн

#4 Март 26, 2012 17:54:17

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Кириллица Python Linux ошибка в кодировке

Для 2.x

print u'Русские буквы'
В 3 - такой проблемы нет, вопрос лишь в том, чтобы под 3-ку были нужные вам библиотеки )

Отредактировано s0rg (Март 26, 2012 17:54:35)

Офлайн

#5 Март 26, 2012 18:59:14

kmike
От:
Зарегистрирован: 2009-12-07
Сообщения: 56
Репутация: +  4  -
Профиль   Отправить e-mail  

Кириллица Python Linux ошибка в кодировке

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

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

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



Офлайн

#6 Март 28, 2012 11:22:54

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Кириллица Python Linux ошибка в кодировке

В результате установил я Python 3 по такому примеру

Но выходит что по умолчанию стоит версия 2.6, а как можно заменить на ново-установленную версию ?
при команде python3 выводит Python 3.1.2.
а при команде python -varsion выводит выводит Python 2.6.5



Офлайн

#7 Март 28, 2012 11:53:28

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Кириллица Python Linux ошибка в кодировке

Не торопитесь ничего заменять. Просто запускайте python3.



Офлайн

#8 Март 28, 2012 11:54:23

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Кириллица Python Linux ошибка в кодировке

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

Собственно у меня сейчас так и настроены разные virtualenv для версиий 2.7 и 3.2.



Офлайн

#9 Март 28, 2012 12:57:20

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Кириллица Python Linux ошибка в кодировке

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

cutwater
Я что-то не подумал действительно над этим, но к счастью для себя еще ничего не пробовал менять. А как понять ?

настроить виртуальное окружение для python3



Офлайн

#10 Март 28, 2012 13:11:03

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Кириллица Python Linux ошибка в кодировке

Погуглите по ключевым словам pip и virtualenv



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version