2016-12-11 6 views
0

Когда я запускаю скрипт как есть и зависает с помощью cxFreze, у меня возникают ошибки в кодировке. Изучив его, проблема в том, что cxFreeze, похоже, возвращается к кодировке ascii, хотя Python использует «utf-8» по умолчанию.CxFreeze изменяет кодировку по умолчанию на ascii

Вот простой скрипт, который я использую:

import sys 
print sys.getdefaultencoding() 

Не может быть короче. Setup.py файл:

import cx_Freeze 

executables = [cx_Freeze.Executable("test_encoding.py")] 

cx_Freeze.setup(
    name = 'test encoding', 
    version = '0.1', 
    description = "Nothing much...", 
    executables = executables, 
) 

Если я запустить его напрямую:

> python27 test_encoding.py 
utf-8 

Но в то время как замороженный:

> build\exe.win32-2.7\test_encoding.exe 
ascii 

Кто-нибудь знает, почему это происходит ... и как это исправить Это? Как вы можете себе представить, это создает множество ошибок, особенно с помощью wxPython.

информация

Версия:

  • Python: 2,7 (32-разрядная версия)
  • Операционная система: Windows 10 (64-разрядная версия)
  • cx_Freeze: 4.3.4
+0

Какую версию cx_Freeze вы используете? –

+0

4.3.4, извините, я отредактировал вопрос. –

ответ

0

В Python 2.7 кодировка по умолчанию - ASCII, поэтому это ожидается. Вам нужно будет узнать, что меняет кодировку по умолчанию на UTF-8 при запуске Python напрямую.

+0

Да ... меня это не удивило бы. Я смотрел на site.py хотя, и кажется, что это ASCII, если я не изменю значения по умолчанию, которые по умолчанию кажутся False. Я попытался заглянуть в папки lib/libs/include в python27, чтобы узнать, могу ли я найти setdefaultencoding ... но из unittests для самого Twisted и site.py я ничего не мог найти. –

0

Я нашел преступника. В моем случае это была Эвенция, у которой был таможенник. По какой-то причине я не могу понять, Python искал этот файл в моей исходной папке. Я полностью удалил каталог и проблема исправлена.