2012-01-24 20 views
4

試圖做一個heroku python manage.py createsuperuser給我說結束大約一個錯誤:在Heroku上,locale.getdefaultlocale()返回(無,無),打破Django 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雪松堆棧。如何設置區域設置,使Python獲取它?

回答

17

回答我自己的問題:事實證明,通過設置一個heroku配置變量可以解決這個問題,該變量會導致python可以接收的環境變量,該變量將從locale.getdefaultlocale()返回可用值。

在我來說,我使用Heroku的設置是:

heroku config:add LANG=en_US.UTF-8 

(當然其他編碼,尤其是語言值可能是有意義別人。)

它固定在createsuperuser問題,到目前爲止,一切都一切都很好。 (其他報告建議用戶做一個執行syncdb並選擇創建一個超級用戶,然後還打這個同樣的錯誤在某些系統上。)

注意,任何此類變化觸發您的實例(S)的重新啓動。

相關問題