1

Djangoプロジェクトを最初に作成したとき、次のファイルフォルダー構造がありました。

project/
    project/
        manage.py
        settings.py
        ...

一番上のフォルダーには、gitリポジトリと仮想環境が初期化されています。

最上位のフォルダーレベルを折りたたみたい( `django-admin.pystartproject。'を実行したかのように]:

project/
    manage.py
    settings.py

しかし、これを手動で行おうとすると、突然設定モジュールが見つかりません。これはproject.settings.どこでハードコーディングされるのでしょうか?

を実行するpython manage.py runserverと、次のエラーが発生します。

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

実行するdjango-admin.py help <some subcommands>と、次のエラーが発生します。

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

設定へのパスはどこかにあると思いますが、見つかりません。何か案は?

4

2 に答える 2

0

私は過去にこれらの場所を使用しました:

  • .bashrc / .bash_history / 他のシェル起動ファイルに PYTHONPATH 環境変数を設定している可能性があります
  • $virtualenv/bin/activateスクリプトのvirtualenvに上記の変数を設定した可能性があります
  • プロジェクトを内部からシンボリックリンクした可能性があります$virtualenv/lib/pythonx.y/site-packages
于 2013-01-07T12:35:26.823 に答える
0

このエラーは、次の可能性があるためです。

  1. プロジェクトルートからコマンドを実行していません。つまりproject/、ではありませんproject/project

  2. プロジェクトルートproject/を追加していないPYTHONPATH

  3. あなたmanage.pyはプロジェクトのルートにありません。つまりproject/、代わりに にありproject/projectます。


考えられる解決策:

  1. プロジェクトルートを追加します-つまりproject/PYTHONPATHmanage.py同等のことをしようとするimport project.settingsため、それが起こるためには見つける必要がありprojectますsys.path
  2. プロジェクト ルート ( project/) がリストされている場合PYTHONPATH- issuemanage.pyは form で設定をインポートする必要がproject.settingsあります。ここで、両方を同じレベルに持っている、つまり、ちょうどある必要がありsettingsます - したがって、1 レベル上に移動して、現在のルートからmanage.pyプロジェクト ルートに移動します。 .project/project/project

  3. に設定DJANGO_SETTINGS_MODULEproject.settingsます。

project.settings設定モジュールが1つ下のディレクトリであることを示しますmanage.py-あなたの場合のように、同じレベルで両方manage.pyを 持っています。つまり、デフォルトのdjangoプロジェクト構造を使用していません。とにかく、「runserver」コマンドを実行する直前に /export 設定を確認できます: (Django の公式ドキュメント -設定から)settings.pyproject/project/DJANGO_SETTINGS_MODULE

(Unix Bash シェル) :

export DJANGO_SETTINGS_MODULE=mysite.settings
django-admin.py runserver

(Windows シェル):

set DJANGO_SETTINGS_MODULE=mysite.settings
django-admin.py runserver

提案: 従来のプロジェクト構造を順守するようにしてください (少なくとも、専門家になるまでは)。つまりmanage.py、他のプロジェクト ファイルの 1 つのディレクトリ レベルを維持します .. settings.pyurls.pyなど

于 2013-01-07T12:47:55.797 に答える