0

怀疑

在终端中,我更改了 LANG=en_US.UTF-8 , LC_ALL=en_US.UTF-8 的设置,当我从终端生成运行 python manage.py createsuperuser 时,它可以工作,但它不能从 ECLIPSE IDE 工作,为什么?

代码

import locale

print locale.getdefaultlocale()

输出

(None, None)

当我从 Eclipse 运行 createsuperuser 时出错

Traceback (most recent call last):
  File "/Users/Abhimanyu/Documents/workspace/new1/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Library/Python/2.6/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
  File "/Library/Python/2.6/site-packages/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Library/Python/2.6/site-packages/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/Library/Python/2.6/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/Library/Python/2.6/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 70, in handle
    default_username = get_default_username()
  File "/Library/Python/2.6/site-packages/django/contrib/auth/management/__init__.py", line 105, in get_default_username
    default_username = get_system_username()
  File "/Library/Python/2.6/site-packages/django/contrib/auth/management/__init__.py", line 85, in get_system_username
    return getpass.getuser().decode(locale.getdefaultlocale()[1])
TypeError: decode() argument 1 must be string, not None
4

1 回答 1

1

不是一个很好的解决方案,但是在 manage.py 中添加以下两行应该可以让事情正常进行。将它们放在对 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "*PROJECT_NAME*.settings") 的调用下方。

os.environ["LANG"] = "en_US.UTF-8"
os.environ["LC_ALL"] = "en_US.UTF-8"

至于为什么部分,请看这里

于 2012-07-21T20:20:28.340 回答