環境をDjango 1.4に更新しました。Python os.getenv on OSX(Django 1.4)
TypeError: decode() argument 1 must be string, not None
このエラーはdjango/contrib/auth/management/init
によってトリガーされます。:syncdbの実行の最初の実行では、私は次のエラーを取得this Djangoのチケットを読んだ後
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
を、私は非公式パッチを試してみましたしかし、私は、何が起こったのかを理解することで、もっとうまくいくと思う。
だから私は、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自体の中でこの問題を解決してもらえますか?ヒントは、あなたのシェルとしてbashのを使用していると仮定すると、このため
これはdjangoのオープンバグです。 https://code.djangoproject.com/ticket/16017 – Eduardo