Tôi vừa cập nhật môi trường cho Django 1.4. Trên chạy đầu tiên syncdb của tôi nhận được lỗi sau:Python os.getenv trên OSX (Django 1.4)
TypeError: decode() argument 1 must be string, not None
Lỗi này được kích hoạt bởi 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
lợi nhuận None
Sau khi đọc this Django vé, tôi đã thử vá không chính thức mà đã làm việc, tuy nhiên tôi nghĩ rằng tôi có thể làm tốt hơn bằng cách tìm ra những gì đang chờ đợi ..
Vì vậy, tôi đã mở một dòng lệnh python và thử:
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."
Tôi có thể giải quyết vấn đề này trong chính OSX không? Lời khuyên được hoan nghênh
Đó là lỗi mở trên django. https://code.djangoproject.com/ticket/16017 – Eduardo