发布于2019-10-07 19:26 阅读(328) 评论(0) 点赞(22) 收藏(2)
我刚刚将环境更新为Django 1.4。在syncdb的首次运行中,出现以下错误:
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
阅读了这张 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本身中解决此问题吗?欢迎小费
假设您使用bash作为shell,则可以立即解决此问题:
$ export LC_ALL=en_US.UTF-8
$ export LANG=en_US.UTF-8
这将设置该会话的语言环境,并且syncdb将起作用。您可以将其添加到您的配置文件中,并使其永久存在于您的外壳中。
您可以使用该locale
命令查看当前设置,并locale -a
查看可用的语言环境。en_US.UTF-8
是一种通用的安全密码,但您可能还有其他偏好。
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/133137/ae81a1a20e06a7d5029c/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!