0

我试图通过使用命令连接到数据库

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 帮助时,成功执行了相同的命令。

4

3 回答 3

1

您需要为 DJANGO_SETTINGS_MODULE 设置操作系统环境值。你可以用一个简单的 EXPORT 命令来做到这一点。如果你使用 virtualenv,我强烈推荐 virtualenvwrapper,我把这个设置放在 'bin/postactivate' 文件中。

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

于 2012-09-22T16:51:34.750 回答
0

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

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", <location of settings.py>)
于 2012-09-22T16:54:34.470 回答
0

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

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'path/to/your/settings.py'
# ...
from django.db import connection
于 2012-09-22T16:55:40.443 回答