Django DB设置“配置不正确”错误

Django(1.5)对我来说很好用,但是当我启动Python解释器(Python 3)进行检查时,尝试导入时会遇到最奇怪的错误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设置为:

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.

}

}

…这是如何配置不正确的?

回答:

你不能只启动Python并检查内容,Django不知道你要处理哪个项目。你必须执行以下操作之一:

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

from django.core.management import setup_environ

from mysite import settings

setup_environ(settings)

自然,第一种方法是最简单的。

以上是 Django DB设置“配置不正确”错误 的全部内容, 来源链接: utcz.com/qa/407607.html

回到顶部