Уведомления

Группа в Telegram: @pythonsu

#1 Март 29, 2012 15:41:08

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

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

cutwater
Тяжело понять это виртуальное окружение да и материала маловато для понимая, я вот установил virtualenv, но что далее честно говоря не пойму ?!
Кстати менял символьную ссылку python для версии 3.1, но тогда действительно малая часть программ перестала работать, пришлось менять обратно на 2.6 .

А в самом Django можно указать версию питона для запуска?



Офлайн

#2 Март 29, 2012 17:07:56

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

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

http://webnewage.org/2009/04/27/virtualenv/
http://vorushin.ru/blog/29-pip-virtualenv-virtualenvwrapper/

Содержится в первых пяти ссылках в выдаче гугла по запросу vitualenv

Saturn
А в самом Django можно указать версию питона для запуска?
Смотря как запускаете, если через manage.py то можно в нем заменить
#!/usr/bin/env python
на
#!/usr/bin/env python3



Офлайн

#3 Март 29, 2012 17:56:26

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

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

cutwater, спасибо буду разбираться.

Если пишу в консоли python3 то выводит версию 3.1, а если в manage.py указываю
#!/usr/bin/env python3 то все равно обрабатывается версией 2.6 поскольку выдает ошибку когда присутствует кириллица,.



Офлайн

#4 Март 29, 2012 18:29:02

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

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

Saturn
то все равно обрабатывается версией 2.6

Значит увы оказался не прав. manage.py вероятно для рестарта порождает еще дочерний процесс, который запускается под 2.

Saturn
выдает ошибку когда присутствует кириллица,.

Еще раз, сначала. Описание ошибки. Файл. Как запускаете. И не надо гадать, потому как как 2.6 работает с кирилицей нормально так и 3.х и смена версии python явно проблему не решит.



Офлайн

#5 Март 29, 2012 19:49:09

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

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

Ошибка:

File “my.py”, line 2
SyntaxError: Non-ASCII character ‘\xd0’ in file my.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

Содержимое файла my.py
print(“кириллица”)

Запускаю
python my.py
выдает ошибку

Но если запустить
python3 my.py
тогда срабатывает



Отредактировано Saturn (Март 29, 2012 19:50:12)

Офлайн

#6 Март 29, 2012 19:52:29

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

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

Вам же даже ссылка в трейсбеке написана, по которой рассказано, почему падает и как это исправить. Если не научиться решать подобные проблемы, а тыкаться - менять интерпретаторы (тем более не нормальным способом, с виртуаленвами, а какими-то костылями), ни к чему хорошему это не приведет.



Офлайн

#7 Март 29, 2012 20:46:03

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

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

kmike Конечно же я смотрел указанную ссылку и пробовал подключать
#!/usr/local/bin/python
import os, sys
но та же ошибка выходила.

Django работает при таком

#!/usr/local/bin/python
# -*- coding: utf-8 -*-

На данный момент меня устраивает.



Отредактировано Saturn (Март 29, 2012 20:46:34)

Офлайн

#8 Март 29, 2012 23:06:26

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

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

стесняюсь спросить, а сам то файл точно в utf8 ?
магическая строчка # -*- coding: utf-8 -*- кодировки файла не меняет :)



Отредактировано sp3 (Март 29, 2012 23:07:21)

Офлайн

#9 Март 30, 2012 00:15:34

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

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

Saturn, еще раз

Удостовериться в том что файл в UTF-8 (судя по всему так и есть)
Указать кодировку

# -*- coding: utf-8 -*-
print("кирилица")

И запускать как
python file.py

Потом разобраться зачем нужен shebang
И то что для питона более правильным является указание
#!/usr/bin/env python
Кстати при использовании virtualenv вы таки поймете разницу.

Просто из последнего вижу я кашу в голове и непонимание что и зачем Вы делаете.
А делать наобум чревато последствиями.



Отредактировано cutwater (Март 30, 2012 00:18:09)

Офлайн

#10 Март 30, 2012 11:19:20

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

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

Кодировку проверил, точно в utf-8. (file -i my.py)

# -*- coding: utf-8 -*-
print(“кирилица”)
python file.py – все нормально выводит.

Кстати при использовании virtualenv вы таки поймете разницу.
Спасибо, но действительно уже и так каша., наверное как нибудь позже придется воспользоваться virtualenv, но в данный момент устраивает пока что есть.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version