我剛更新了一個環境到Django 1.4。在執行syncdb的第一次運行,我得到以下錯誤:OSX上的Python os.getenv(Django 1.4)
TypeError: decode() argument 1 must be string, not None
此錯誤是由django/contrib/auth/management/init
觸發:
try:
return getpass.getuser().decode(locale.getdefaultlocale()[1])
except (ImportError, KeyError, UnicodeDecodeError):
# KeyError will be raised by os.getpwuid() (called by getuser())
# if there is no corresponding entry in the /etc/passwd file
# (a very restricted chroot environment, for example).
# UnicodeDecodeError - preventive treatment for non-latin Windows.
return u''
getdefaultlocale
回報None
閱讀this Django的車票後,我試着非官方的補丁,它但我認爲我可以通過弄清楚發生了什麼事情來做得更好..
所以,我打開一個Python的命令行,並試圖:
import os
print os.getenv()
None
os.getenv.__doc__
"Get an environment variable, return None if it doesn't exist.\n The optional second argument can specify an alternate default."
我能解決內OSX本身這個問題?溫馨提示歡迎
這是一個關於django的開放bug。 https://code.djangoproject.com/ticket/16017 – Eduardo 2012-07-15 13:28:08