来自django.db导入连接在django1.4中给出错误

时间:2012-09-22 16:37:31

标签: python django postgresql importerror django-settings

我试图使用命令

连接到数据库
from django.db import connection 

来自python shell 但这会产生以下导入错误

File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/django/db/__init__.py", line 11, in <module>
    if DEFAULT_DB_ALIAS not in settings.DATABASES:
  File "/usr/local/lib/python2.7/dist-packages/django/utils/functional.py", line 184, in inner
    self._setup()
  File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 40, in _setup
    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

我正在使用Django 1.4和PostgreSQL 当我使用早期版本的django时,同样的命令被执行成功 Plz帮助。

3 个答案:

答案 0 :(得分:1)

您需要为DJANGO_SETTINGS_MODULE设置OS环境值。您可以使用简单的EXPORT命令执行此操作。如果您使用的是virtualenv,我会立即推荐virtualenvwrapper,并将此设置放在'bin / postactivate'文件中。

注意:我刚刚通过django 1.4 shell测试它,导入对我来说很好。

答案 1 :(得分:0)

您的manage.py文件定义了DJANGO_SETTINGS_MODULE。由于您在django应用程序之外运行此代码,因此您需要自己定义它。

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", <location of settings.py>)

答案 2 :(得分:0)

您必须设置环境变量DJANGO_SETTINGS_MODULE。最简单的方法是将以下代码放在包含失败导入语句的文件的顶部:

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'path/to/your/settings.py'
# ...
from django.db import connection