Django DB 设置“配置不当"错误 [英] Django DB Settings 'Improperly Configured' Error

查看:34
本文介绍了Django DB 设置“配置不当"错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Django (1.5) 对我来说很好用,但是当我启动 Python 解释器 (Python 3) 来检查某些事情时,我在尝试导入时遇到了最奇怪的错误 - from django.contrib.auth.models 导入用户 -

Django (1.5) is workin' fine for me, but when I fire up the Python interpreter (Python 3) to check some things, I get the weirdest error when I try importing - from django.contrib.auth.models import User -

Traceback (most recent call last):
  File "/usr/local/lib/python3.2/dist-packages/django/conf/__init__.py", line 36, in _setup
    settings_module = os.environ[ENVIRONMENT_VARIABLE]
  File "/usr/lib/python3.2/os.py", line 450, in __getitem__
    value = self._data[self.encodekey(key)]
KeyError: b'DJANGO_SETTINGS_MODULE'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.2/dist-packages/django/contrib/auth/models.py", line 8, in <module>
    from django.db import models
  File "/usr/local/lib/python3.2/dist-packages/django/db/__init__.py", line 11, in <module>
    if settings.DATABASES and DEFAULT_DB_ALIAS not in settings.DATABASES:
  File "/usr/local/lib/python3.2/dist-packages/django/conf/__init__.py", line 52, in __getattr__
    self._setup(name)
  File "/usr/local/lib/python3.2/dist-packages/django/conf/__init__.py", line 45, in _setup
    % (desc, ENVIRONMENT_VARIABLE))

django.core.exceptions.ImproperlyConfigured: Requested setting DATABASES, 
  but settings are not configured. You must either define the environment 
  variable DJANGO_SETTINGS_MODULE or call settings.configure() 
  before accessing settings.

当它在 Python 解释器之外正常工作时,它怎么会被错误地配置?在我的 Django 设置中,DATABASES 设置是:

How could it be improperly configured, when it works fine outside the Python interpreter? In my Django settings, the DATABASES settings are:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'django_db', # Or path to database file if using sqlite3.
        # The following settings are not used with sqlite3:
        'USER': 'zamphatta',
        'PASSWORD': 'mypassword91',
        'HOST': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
        'PORT': '', # Set to empty string for default.
    }
}

...这是如何配置不当的?

...how is this improperly configured?

推荐答案

你不能只是启动 Python 并检查事情,Django 不知道你想从事什么项目.您必须执行以下操作之一:

You can't just fire up Python and check things, Django doesn't know what project you want to work on. You have to do one of these things:

  • 使用python manage.py shell
  • 使用 django-admin.py shell --settings=mysite.settings(或您使用的任何设置模块)
  • 将操作系统中的 DJANGO_SETTINGS_MODULE 环境变量设置为 mysite.settings
  • (这在 Django 1.6 中被移除)在 python 解释器中使用 setup_environ:

  • Use python manage.py shell
  • Use django-admin.py shell --settings=mysite.settings (or whatever settings module you use)
  • Set DJANGO_SETTINGS_MODULE environment variable in your OS to mysite.settings
  • (This is removed in Django 1.6) Use setup_environ in the python interpreter:

from django.core.management import setup_environ
from mysite import settings

setup_environ(settings)

当然,第一种方法是最简单的.

Naturally, the first way is the easiest.

这篇关于Django DB 设置“配置不当"错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆