Найти - Пользователи
Полная версия: Война со сборкой под винду
Начало » Python для новичков » Война со сборкой под винду
1
Enchantner
Что линуксу хорошо, как говорится… Пытаюсь собрать одну программку под винду с помощью py2exe. Проблема в том, что там парсятся файлы на русском языке, естественно, повсеместно юникод. Но вот под линуксом программа работает отлично, а под виндой:
Traceback (most recent call last):
File “forms\MainForm.pyc”, line 138, in loadPrice
File “modules\yandex.pyc”, line 34, in load_urls
File “lxml.etree.pyx”, line 2698, in lxml.etree.parse (src/lxml/lxml.etree.c:49590)
File “parser.pxi”, line 1491, in lxml.etree._parseDocument (src/lxml/lxml.etree.c:71205)
File “parser.pxi”, line 1520, in lxml.etree._parseDocumentFromURL (src/lxml/lxml.etree.c:71488)
File “parser.pxi”, line 1420, in lxml.etree._parseDocFromFile (src/lxml/lxml.etree.c:70583)
File “parser.pxi”, line 975, in lxml.etree._BaseParser._parseDocFromFile (src/lxml/lxml.etree.c:67736)
File “parser.pxi”, line 539, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:63820)
File “parser.pxi”, line 625, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:64741)
File “parser.pxi”, line 559, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:64023)
UnicodeDecodeError: ‘ascii’ codec can't decode byte 0xd0 in position 37: ordinal not in range(128)
Так чего это ошибка? lxml? если да, то как ее обойти? Файл, который парсится - xml с русскими символами, но все в utf-8. lxml последней версии - 2.2.2
PooH
попробуйте добавить в опции py2exe пакет encodings, что-то типа
setup(windows=['main.py'],
options={
'py2exe':{
'packages': ["encodings"],
...
}
},
)
Enchantner
PooH
АПД: вру, не помогло. Та же ошибка.
PooH
Enchantner
PooH
АПД: вру, не помогло. Та же ошибка.
А без py2exe программа на винде работает?
hellslade
У меня была подобная проблема. Решилась так:
import sys
if hasattr(sys, "frozen"):
sys.setdefaultencoding('cp1251')
Enchantner
PooH
Работает, причем без ошибок
hellslade
спасибо большое, помогло!

Еще небольшой вопрос, как при сборке py2exe указывать иконку для получающегося экзешника? Если это можно. Потому что с помощью редактора ресурсов это делать как-то не хочется.

АПД: вроде тоже нашел, попробую. Кому интересно - http://stackoverflow.com/questions/525329/embedding-icon-in-exe-with-py2exe-visible-in-vista
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