DJANGO_SETTINGS_MODULE

在  py manage.py shell 或者  py manage.py makemigrations 时会出现这个错误

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

原因是django启动时找不到配置文件

解决方法是在shell中设置环境变量 DJANGO_SETTINGS_MODULE
如下:
     export DJANGO_SETTINGS_MODULE="[PROJECT].settings"

其中[PROJECT]是django项目的名字
     [PROJECT].settings 对应着 工程中的 [PROJECT]/[PROJECT]/settings.py文件

这个文件就解决了!

--------------

另外可以使用 autoenv来自动配置.autoenv的原理是在cd 一个文件夹时执行这个文件夹中的.env脚本文件

autoenv安装方法:
     $ git clone git://github.com/kennethreitz/autoenv.git ~/.autoenv

     $ echo 'source ~/.autoenv/activate.sh' >> ~/.bashrc

安装好后在自己的工程下写一个.env文件:

     projectname=$(basename $PWD)
     export DJANGO_SETTINGS_MODULE="$projectname.settings"

以后cd进入工程目录时会自动设置. 创建新的工程后把这个文件拷贝过去就行了.

参考文章:https://www.reddit.com/r/django/comments/2d85a4/django_settings_module_is_undefined/

你可能感兴趣的:(DJANGO_SETTINGS_MODULE)