由于错误的系统区域设置,Django日志记录失败

时间:2018-08-28 08:53:10

标签: python django locale

我有一个Django应用,该应用无法登录,并显示错误UnicodeEncodeError: 'ascii' codec can't encode character。问题在于系统语言环境是CentOS默认语言环境,即ASCII。管理员不想在其服务器上更改系统范围的区域设置,他们说这些应用程序应该能够在干净的环境中运行。

我们通过将其添加到uwsgi.ini来解决了Django应用本身的问题:

env = LANG=en_US.UTF-8
env = LANGUAGE=en_US.en
env = LC_ALL=en_US.UTF-8

但是,uwsgi.ini对于作为django管理命令运行的代码没有任何影响,我们在其中做了很多工作。

解决此问题的最佳方法是什么?

UPD :我们还尝试在settings.py文件中设置区域设置,但这无济于事。

1 个答案:

答案 0 :(得分:1)

尝试在Python发行版的sitecustomize.py文件夹内的site-packages模块中设置默认编码。此模块在启动时为loaded by Python,可以在此处放置任意针对站点的自定义内容。

sitecustomize.py

import sys
sys.setdefaultencoding('UTF8')

如果该模块尚不存在,则可能需要创建该模块。