程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

OSX(Django 1.4)上的Python os.getenv

发布于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黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

22 0
收藏该文
已收藏

评论内容:(最多支持255个字符)