Django プロジェクト (virtualenv を使用しています) に DJANGO_SETTINGS_MODULE を正しく設定するにはどうすればよいですか? 質問する

Django プロジェクト (virtualenv を使用しています) に DJANGO_SETTINGS_MODULE を正しく設定するにはどうすればよいですか? 質問する

Django プロジェクトの DJANGO_SETTINGS_MODULE の設定で問題が発生しています。

にディレクトリがあります~/dev/django-project。このディレクトリには、virtualenv で設定した仮想環境と、その中に「onora」というアプリがある「blossom」という Django プロジェクトがあります。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/#設定を指定する

それは私に

Django を使用する場合、どの設定を使用するかを伝える必要があります。これを行うには、環境変数 DJANGO_SETTINGS_MODULE を使用します。DJANGO_SETTINGS_MODULE の値は、mysite.settings などの Python パス構文で指定する必要があります。設定モジュールは、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? これはどのように動作するのでしょうか?

ありがとう。

ベストアンサー1

最初のプロジェクト作成時以外は を実行しないでくださいdjango-admin.py。それ以降はすべて を使用してください。これによりmanage.py設定の検索が行われます。

おすすめ記事