一尘不染

如何为我的Django项目正确设置DJANGO_SETTINGS_MODULE(我正在使用virtualenv)?

django

我在为Django项目设置DJANGO_SETTINGS_MODULE时遇到麻烦。

我有一个目录~/dev/django-project。在此目录中,我有一个用virtualenv设置的虚拟环境,还有一个名为“ blossom”的Django项目,其中包含一个名为“ onora”的应用程序。tree -L 3从运行~/dev/django-project/ 向我显示以下内容:

.
├── Procfile
├── blossom
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── fixtures
│   │   └── initial_data_test.yaml
│   ├── manage.py
│   ├── onora
│   │   ├── __init__.py
│   │   ├── __init__.pyc
│   │   ├── admin.py
│   │   ├── admin.pyc
│   │   ├── models.py
│   │   ├── models.pyc
│   │   ├── tests.py
│   │   └── views.py
│   ├── settings.py
│   ├── settings.pyc
│   ├── sqlite3-database
│   ├── urls.py
│   └── urls.pyc
├── blossom-sqlite3-db2
├── requirements.txt
└── virtual_environment
    ├── bin
    │   ├── activate
    │   ├── activate.csh
    │   ├── activate.fish
    │   ├── activate_this.py
    │   ├── django-admin.py
    │   ├── easy_install
    │   ├── easy_install-2.7
    │   ├── gunicorn
    │   ├── gunicorn_django
    │   ├── gunicorn_paster
    │   ├── pip
    │   ├── pip-2.7
    │   ├── python
    │   └── python2.7 -> python
    ├── include
    │   └── python2.7 -> /System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7
    └── lib
        └── python2.7

我正在尝试使用以下命令从数据库中转储数据

django-admin.py dumpdata

我的方法是先跑cd ~/dev/django-project再跑source virtual_environment/bin/activate再跑django-admin.py dumpdata

但是,我收到以下错误:

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

我进行了一些谷歌搜索,发现了以下页面:https : //docs.djangoproject.com/en/dev/topics/settings/#designating-the-settings

告诉我

使用Django时,必须告诉它所使用的设置。通过使用环境变量DJANGO_SETTINGS_MODULE来执行此操作。DJANGO_SETTINGS_MODULE的值应采用Python路径语法,例如mysite.settings。请注意,设置模块应位于Python导入搜索路径上。

在virtualenv下设置DJANGO_SETTINGS_MODULE时有建议吗?我追加了几行

export DJANGO_SETTINGS_MODULE="blossom.settings"
echo $DJANGO_SETTINGS_MODULE

virtual_environment / bin / activate。现在,当我运行activate命令以激活虚拟环境时,输出如下:

DJANGO_SETTINGS_MODULE set to blossom.settings

这对我来说看起来不错,但是现在我的问题是跑步

django-admin.py dumpdata

返回以下错误:

ImportError: Could not import settings 'blossom.settings' (Is it on sys.path?): No module named blossom.settings

我究竟做错了什么?如何检查sys.path?这应该如何工作?


阅读 2102

收藏
2020-03-31

共1个答案

一尘不染

django-admin.py除了最初的项目创建外,请勿运行其他任何内容。对于此后的所有操作,请使用manage.py,它会负责查找设置。

2020-03-31