Ведение журнала Django не выполняется из-за неправильной локали системы - PullRequest
0 голосов
/ 28 августа 2018

У меня есть приложение Django, которое не может войти в систему с ошибкой UnicodeEncodeError: 'ascii' codec can't encode character. Проблема заключается в том, что системным языком является языковой стандарт CentOS по умолчанию, то есть ASCII. Администраторы не хотят менять общесистемный языковой стандарт на своих серверах, говоря, что приложения должны работать в чистой среде.

Мы обошли проблему для самих приложений Django, добавив это в uwsgi.ini:

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 голосов
/ 28 августа 2018

Попробуйте установить кодировку по умолчанию в модуле sitecustomize.py внутри папки site-packages вашего дистрибутива Python. Этот модуль загружается Python , когда он запускается, и здесь можно разместить произвольные настройки для конкретного сайта.

sitecustomize.py

import sys
sys.setdefaultencoding('UTF8')

Вам может потребоваться создать модуль, если он еще не существует.

...