5

我正在使用 Django,我正在尝试设置几个环境变量来定义要导入的设置。

我使用以下文件夹层次结构:

project_folder>
    app_folder>
    project_specific_files>
        settings>
            base.py
            local.py

我使用Kenneth Reitz 的 autoenv来加载我的环境变量。我知道它工作正常,因为我可以输入$ echo $DJANGO_SETTINGS_MODULE并看到以下输出:

project_specific_files.settings.local

但是当我跑步时,$django-admin.py runserver我得到:

ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

另外,如果我进入 python shell 并尝试打印出环境变量,我会得到以下信息:

Python 2.7.3 (default, Dec 22 2012, 21:14:12) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> print os.environ['HOME']
/home/marco
>>> print os.environ['DJANGO_SETTINGS_MODULE']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/marco/.virtualenvs/myproject/lib/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'DJANGO_SETTINGS_MODULE'

有人知道可能出了什么问题吗?谢谢!

另外,我可以打字$ django-admin.py runserver --settings='project_specific_files.settings.local,一切都会好起来的 0.o

4

1 回答 1

10

您的环境变量是否已导出?

也许环境变量是在当前 shell 中定义的,但没有标记为要导出到子进程(python 解释器或 Django)。

使用 bash,运行:export DJANGO_SETTINGS_MODULE

于 2013-02-21T15:11:04.463 回答