当我按原样运行脚本并使用cxFreze将其冻结时,我遇到了编码错误。在研究之后,问题是cxFreeze似乎又回到了'ascii'编码,尽管Python使用'utf-8'作为默认值。
这是我使用的简单脚本:
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。
版本信息:
答案 0 :(得分:0)
在Python 2.7中,默认编码是ASCII,因此这是预期的。在直接运行Python时,您需要找出将默认编码更改为UTF-8的内容 - 站点默认值可能是罪魁祸首。
答案 1 :(得分:0)
我找到了罪魁祸首。就我而言,是Evennia,它有一个自定义网站。由于我无法理解的原因,Python在我的源文件夹中查找此文件。我完全删除了目录,问题得到解决。