В Heroku функция locale.getdefaultlocale () возвращается (нет, нет), ломая Django, создает суперпользователя - как это исправить? - PullRequest
4 голосов
/ 24 января 2012

Попытка сделать heroku python manage.py createsuperuser дала мне ошибку, которая примерно закончилась:

File "/usr/local/www/site-python/lib/django-trunk/django/contrib/auth/management/__init__.py", line 85, in get_system_username
 return getpass.getuser().decode(locale.getdefaultlocale()[1])
TypeError: decode() argument 1 must be string, not None

Подтверждение ввода оболочки: locale.getdefaultlocale () возвращает (Нет, Нет) в моем стеке Heroku Cedar.Как мне установить язык так, чтобы Python его поднял?

1 Ответ

17 голосов
/ 24 января 2012

Чтобы ответить на мой собственный вопрос: оказывается, это можно исправить установкой переменной конфигурации heroku, в результате чего переменная окружения, которую может получить python, возвращает значения, которые можно использовать из locale.getdefaultlocale ().

В моем случае настройки героку, которые я использовал, были:

heroku config:add LANG=en_US.UTF-8

(Конечно, другие кодировки и особенно языковые значения могут иметь смысл для других.)

Устранена проблема с созданием пользователя и пока все хорошо. (Другие отчеты предполагают, что пользователи, выполняющие syncdb и решающие создать суперпользователя, также сталкивались с такой же ошибкой в ​​некоторых системах.)

Обратите внимание, что любое такое изменение вызывает перезапуск вашего экземпляра (ов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...