web-dev-qa-db-ja.com

Djangoインポートエラー:appsという名前のモジュールはありません

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開発者としてあまり経験がないので、自分で解決策を見つけることはできません。

12
Josh

Python=パッケージとして認識されるようにするには、appsフォルダーに空の___init__.py_(合計4つのアンダースコア)ファイルを追加する必要があります。

詳細については documentation をご覧ください。

19
aumo

Django 1.9にはDjango.appsというモジュールがあります

組み込みモジュールとの名前の衝突を避けることが一般的に推奨されます

10
user5909835

Django-admin startapp myappコマンドを使用した場合、次のファイルが作成されます:myapp/apps.py

apps/モジュールフォルダーと競合している可能性があります。非表示のapps.pycファイルは、myapp/フォルダーにある可能性があります。

これらを削除してみてください:

  • project/apps/myapp/apps.py
  • project/apps/myapp/apps.pyc
9
Ruben

これは、これを実行する前に、メインプロジェクトフォルダーのsettings.pyにアプリをインストールした場合にも発生する可能性があります。

python manage.py startapp [app-name]

コメントアウトし、アプリを作成して(今は動作するはずです)、settings.pyファイルに行を戻して続行します。

4
lookininward

Django 1.9では、アプリをINSTALLED_APPSリストに追加できることに注意してください。

アプリ名がappで、その中にモデルを作成した場合は、settings.pyファイルに移動してアプリを追加します。

INSTALLED_APPS = [
    ...
    'app'
]
2
mwanjajoel

このコマンドを使用してアプリを起動する場合:

Django-admin startapp appexample

...次に、AppexampleConfigクラスをsettings.pyファイルにリストしないでください。

INSTALLED_APPSリストにアプリ名(例:appexample)を追加するだけです。 appexample.app.AppexampleConfigの使用は避けてください。

通常、AppexampleConfigクラスは、Djangoアプリケーションとその構成を表すDjango.apps.Appconfigクラスのサブクラスです。名前クラス属性を定義し、その値を設定するだけです。 Appexampleに。

0

python3 manage.py runserverの代わりにpython manage.py runserverを実行した後、この問題を乗り越えました。

0
Taylor A. Leach

まず、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が正しく設定されています、それはエラーが別の場所にあることを意味します。

0
Diaz

コマンド:python manage.py startapp app_name

クラス名はapp_nameファイルのmodels.pyと同じでなければならず、app_nameINSTALLED_APPSリストにsettings.pyを追加する必要があります。

0