Gitでプロジェクトをチェックアウトしました。プロジェクト構造は
project
apps
myapp
settings
__init__.py
__init__.py
manage.py
他にもディレクトリとファイルがありますが、それらは重要なものだと思います。
サーバーを実行すると
Traceback (most recent call last):
File "C:/Dev/project/apps/manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:\Python27\lib\site-packages\Django\core\management\__init__.py", line 385, in execute_from_command_line
utility.execute()
File "C:\Python27\lib\site-packages\Django\core\management\__init__.py", line 345, in execute
settings.INSTALLED_APPS
File "C:\Python27\lib\site-packages\Django\conf\__init__.py", line 46, in __getattr__
self._setup(name)
File "C:\Python27\lib\site-packages\Django\conf\__init__.py", line 42, in _setup
self._wrapped = Settings(settings_module)
File "C:\Python27\lib\site-packages\Django\conf\__init__.py", line 98, in __init__
% (self.SETTINGS_MODULE, e)
ImportError: Could not import settings 'apps.myapp.settings' (Is it on sys.path? Is there an import error in the settings file?): No module named apps.myapp.settings
manage.py check
を実行するとImportError: No module named apps.
が返されるため、問題は設定モジュールとは関係なく、appsディレクトリとは関係ないと思います。プロジェクトがsys.path
上にあり、ディレクトリapps
が明らかに存在するため、モジュールアプリが見つからない理由はわかりません。私はPython開発者としてあまり経験がないので、自分で解決策を見つけることはできません。
Python=パッケージとして認識されるようにするには、apps
フォルダーに空の___init__.py
_(合計4つのアンダースコア)ファイルを追加する必要があります。
詳細については documentation をご覧ください。
Django 1.9にはDjango.appsというモジュールがあります
組み込みモジュールとの名前の衝突を避けることが一般的に推奨されます
Django-admin startapp myapp
コマンドを使用した場合、次のファイルが作成されます:myapp/apps.py
。
apps/
モジュールフォルダーと競合している可能性があります。非表示のapps.pyc
ファイルは、myapp/
フォルダーにある可能性があります。
これらを削除してみてください:
project/apps/myapp/apps.py
project/apps/myapp/apps.pyc
これは、これを実行する前に、メインプロジェクトフォルダーのsettings.py
にアプリをインストールした場合にも発生する可能性があります。
python manage.py startapp [app-name]
コメントアウトし、アプリを作成して(今は動作するはずです)、settings.py
ファイルに行を戻して続行します。
Django 1.9
では、アプリをINSTALLED_APPS
リストに追加できることに注意してください。
アプリ名がapp
で、その中にモデルを作成した場合は、settings.py
ファイルに移動してアプリを追加します。
INSTALLED_APPS = [
...
'app'
]
このコマンドを使用してアプリを起動する場合:
Django-admin startapp appexample
...次に、AppexampleConfig
クラスをsettings.py
ファイルにリストしないでください。
INSTALLED_APPS
リストにアプリ名(例:appexample
)を追加するだけです。 appexample.app.AppexampleConfig
の使用は避けてください。
通常、AppexampleConfig
クラスは、Djangoアプリケーションとその構成を表すDjango.apps.Appconfig
クラスのサブクラスです。名前クラス属性を定義し、その値を設定するだけです。 Appexample
に。
python3 manage.py runserver
の代わりにpython manage.py runserver
を実行した後、この問題を乗り越えました。
まず、manage.py
を確認し、myapp
への正しい参照があることを確認します。
... apps/myapp/manage.py
...
if __name__ == "__main__":
os.environ.setdefault("Django_SETTINGS_MODULE", "myapp.settings")
...
設定が正しい場合は、Pythonインタープリターを確認してください。virtualenvを使用している場合、仮想環境の代わりにグローバルPython= 。global Python)の使用は、IDEの不適切な設定、ユーザーエラー、またはmanage.py
の不正なbin/bashによって引き起こされる可能性があります。
manage.py
が仮想環境で実行されていることを確認するには、manage.py
の最初の行を確認します。デフォルトでは、ファイルは次のように読み取ります。
#!/usr/bin python
それを次のように変更します。
#!/path/to/virtualenv/bin python
ここで、ターミナルと使用しているPythonバージョンを確認します。次に、virtualenvをアクティブにします。
[user@pc] #: source /path/to/virtualenv/bin/activate
(venv) [user@pc] #: pip list
Djangoがインストールされていることを確認します。インストールされていて、まだ正常に動作しない場合は、pip
でアップグレードします。
(venv) [user@pc] #: pip install --upgrade Django
Pythonバージョンが正しいにもかかわらず上記のいずれも機能しない場合は、正しいPython環境とmanage.py
が正しく設定されています、それはエラーが別の場所にあることを意味します。
コマンド:python manage.py startapp app_name
クラス名はapp_name
ファイルのmodels.py
と同じでなければならず、app_name
のINSTALLED_APPS
リストにsettings.py
を追加する必要があります。