【问题标题】:Adding a database to the Django Project using Sqlite3 with Python 2.7使用 Sqlite3 和 Python 2.7 将数据库添加到 Django 项目
【发布时间】:2012-06-09 02:43:28
【问题描述】:

我正在尝试使用 Sqlite3 和 Python 2.7 将数据库添加到 Django 项目。

这就是我的 setting.py 的样子:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'dev.db',                      # Or path to database file if using sqlite3.
        'USER': '',                      # Not used with sqlite3.
        'PASSWORD': '',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}

它允许我创建数据库并要求我创建超级用户:

You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no):

当我输入是时,它给了我这个错误消息。

错误信息:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
  File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle
    return self.handle_noargs(**options)
  File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 110, in handle_noargs
    emit_post_sync_signal(created_models, verbosity, interactive, db)
  File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/core/management/sql.py", line 189, in emit_post_sync_signal
    interactive=interactive, db=db)
  File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/dispatch/dispatcher.py", line 172, in send
    response = receiver(signal=self, sender=sender, **named)
  File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 73, in create_superuser
    call_command("createsuperuser", interactive=True, database=db)
  File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 150, in call_command
    return klass.execute(*args, **defaults)
  File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 70, in handle
    default_username = get_default_username()
  File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 105, in get_default_username
    default_username = get_system_username()
  File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 85, in get_system_username
    return getpass.getuser().decode(locale.getdefaultlocale()[1])
  File "/Users/IMAC/work3/env/lib/python2.7/locale.py", line 496, in getdefaultlocale
    return _parse_localename(localename)
  File "/Users/IMAC/work3/env/lib/python2.7/locale.py", line 428, in _parse_localename
    raise ValueError, 'unknown locale: %s' % localename
ValueError: unknown locale: UTF-8

如何解决上述错误?为什么它不允许我添加超级用户?我该怎么办?这个问题可能是因为我运行的是 Python 2.7 吗?

【问题讨论】:

  • 那么...您的问题是“如何在 OS X 上添加语言环境?”?
  • 是因为我运行的是python 2.7吗?

标签: python database django python-2.7


【解决方案1】:

在执行 python manage.py syncdb 之前输入这个

export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

这将解决错误。顺便说一句,我使用的是 /usr/bin/python 中的 mac os x python。

将其添加到 ./.bash_profile 文件中,以便它自动调用它..

【讨论】:

    【解决方案2】:

    我最近实际上在 Windows 上遇到了这个问题。这是一个技巧,而不是修复或答案,但它可能会帮助您解决问题:

    把它放在你的 manage.py 脚本的顶部

    import os
    os.environ.setdefault('LANG','en_US')
    

    http://keeyai.com/2012/02/17/django-deployment-create-superuser-fails-with-locale-error/

    【讨论】:

      猜你喜欢
      • 2021-11-27
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多