Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 12, 2010 22:44:38

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Boost.Python под Python 3.1 проблема с юникодом

Я на винде проверял…
Ошибка при импорте?
В “Locale and Regional Setting” (или как там это называется в Control Panel) русский стоит по умолчанию? Combo box в последней закладке.
Какой sys.getfilesystemencoding() sys.getdefaultencoding() и locale.getpreferredencoding() ?



Офлайн

#2 Сен. 12, 2010 22:51:17

HexRx
От:
Зарегистрирован: 2010-09-10
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Boost.Python под Python 3.1 проблема с юникодом

Андрей Светлов
Ошибка при импорте?
Да
Андрей Светлов
В “Locale and Regional Setting” (или как там это называется в Control Panel) русский стоит по умолчанию? Combo box в последней закладке.
Русский
Андрей Светлов
sys.getfilesystemencoding()
mbcs
Андрей Светлов
sys.getdefaultencoding()
utf-8
Андрей Светлов
locale.getpreferredencoding()
cp1251



Офлайн

#3 Сен. 13, 2010 12:54:09

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Boost.Python под Python 3.1 проблема с юникодом

Вот так да!
Полтора года назад у меня все это счастье работало.
Думаю, ошибка не в собственно UnicodeDecodeError. Питон просто не может правильно ее напечатать.
Если вас не затруднит, сделайте что-то вроде

import traceback
try:
import hello_ext
except ImportError as ex:
traceback.print_exc(file=open("log.txt", "w"))
Думаю, в log.txt можно будет увидеть больше.



Офлайн

#4 Сен. 13, 2010 14:20:20

HexRx
От:
Зарегистрирован: 2010-09-10
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Boost.Python под Python 3.1 проблема с юникодом

import traceback
try:
import hello_ext
except ImportError as ex:
traceback.print_exc(file=open("log.txt", "w"))
Код выполнился с ошибкой и файл не создался :(
Traceback (most recent call last):
File "test_hello.py", line 8, in <module>
import hello_ext
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 30-31: invalid data



Офлайн

#5 Сен. 13, 2010 17:11:57

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Boost.Python под Python 3.1 проблема с юникодом

Ой-ё!
Скажите пожалуйста, ваш путь к hello_ext.pyd.
И еще. Как я понимаю - это модуль верхнего уровня, без всяких package.subpackage.module ?
Последнее: вы можете импортировать .py файлы из этого же места или нет? Не Python C Extensions, а именно .py?
И, на всякий случай, какая у вас Винда?

Кажется, прийдется поставить ее в виртуалке и внимательно посмотреть самому.
Англоязычный народ не уделяет достаточного внимания всяким там разным кодировкам.
Разработчики питона к тому же используют в основном MacOs и Linux. Сознавая, что Винда тоже необходима.
Да что там говорить, у Мартина вон Лёвиса макбук - и этот человек Windows Python Maintainer.
При всем уважении к его действительно глубоким знаниям Windows он таки большую часть времени работает как posix programmer (а там уже не столь важно, Linux или MacOS).



Офлайн

#6 Сен. 13, 2010 20:17:09

HexRx
От:
Зарегистрирован: 2010-09-10
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Boost.Python под Python 3.1 проблема с юникодом

Андрей Светлов
Скажите пожалуйста, ваш путь к hello_ext.pyd.
C:\Documents and Settings\User\Мои документы\Visual Studio 2008\Projects\Boost.Python\Release
Андрей Светлов
И еще. Как я понимаю - это модуль верхнего уровня, без всяких package.subpackage.module ?
Да, верхнего
Андрей Светлов
Последнее: вы можете импортировать .py файлы из этого же места или нет? Не Python C Extensions, а именно .py?
Как странно но .py импортируются.
Андрей Светлов
И, на всякий случай, какая у вас Винда?
Windows XP SP3 сборка Game Edition :)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version