2017-01-31 13 views
0

私のブログアプリをsettings.pyのINSTALLED_APPSセクションに追加すると、"ModuleNotFoundError: No module named 'blog'"エラーが発生します。私はそれがINSTALLED_APPSの下に「ブログ」アプリを追加した方法と関係があると判断しました。 INSTALLED_APPSから「ブログ」参照を削除すると、エラーが消えてしまいます。 Djangoは私のブログアプリのディレクトリを見つけることができないようですか?Djangoが言う - 'blog'というモジュールがありません

は、私は一つのこと、異なる行っていると、それは使用です:

python manage.py startapp blog /myproject 

違い、ここで/myprojectディレクトリを指定して使用していない:ルートディレクトリmyprojectの下に置きます

python manage.py startapp blog 

。私は、ルートディレクトリにappディレクトリを追加することを避けたかったので、もっと整理しておいてください。しかし、Djangoはこれを気に入らないか、またはINSTALLED_APPSセクションでこれを正しく参照していないようですか?

マイプロジェクトディレクトリには、以下の通りである:インサイド

myproject/ 
├── myproject 
│   ├── __init__.py 
│   ├── __pycache__ 
│   │   ├── __init__.cpython-36.pyc 
│   │   ├── settings.cpython-36.pyc 
│   │   ├── urls.cpython-36.pyc 
│   │   └── wsgi.cpython-36.pyc 
│   ├── blog 
│   │   ├── __init__.py 
│   │   ├── admin.py 
│   │   ├── apps.py 
│   │   ├── migrations 
│   │   │   └── __init__.py 
│   │   ├── models.py 
│   │   ├── tests.py 
│   │   └── views.py 
│   ├── settings.py 
│   ├── urls.py 
│   └── wsgi.py 
├── db.sqlite3 
└── manage.py 

settings.py私はセットアップ私のアプリblogあります

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'blog', 
] 
+0

をお勧めしません、私はあなたがINSTALLED_APPS''で 'my_project.blog'を書くべきと考えています単純に「ブログ」の代わりに。 – Vincent

+0

ありがとうございました。 –

+0

私はそれが適切な方法である –

答えて

1

だろうDjangoは通常、これはルートディレクトリ'myproject.blog'からの相対フルパスを含む意味し、あなたのアプリケーションをインポートできるようにする必要があります。

あなたはblogをインポートできるようにPYTHONPATH<full_path_to_your_project>/myproject/myprojectを追加することができますが、あなたのアプリが `my_project`モジュールであるので、私はそれを

+0

それを解決してくれてありがとう、それでレッスンここでは、非標準的なDjango構造を使用している場合、アプリへのフルパスを含めることです。 –

+0

私はあなたのディレクトリ構造が珍しいとは言いません。シェルから 'import my_app'を実行できるのであれば、それをアプリケーションとして含めることができます –

2

ディレクトリ構造が珍しいです。より一般的とアプリがブログ命名されて一致するものが

myproject/ 
├── myproject 
│ ├── __init__.py 
│ ├── __pycache__ 
│ │ ├── __init__.cpython-36.pyc 
│ │ ├── settings.cpython-36.pyc 
│ │ ├── urls.cpython-36.pyc 
│ │ └── wsgi.cpython-36.pyc 
├── blog 
│ ├── __init__.py 
│ ├── admin.py 
│ ├── apps.py 
│ ├── migrations 
│ │ └── __init__.py 
│ ├── models.py 
│ ├── tests.py 
│ └── views.py 
│ ├── settings.py 
│ ├── urls.py 
│ └── wsgi.py 
├── db.sqlite3 
└── manage.py 
+0

何も仕事をmy_project_name.blogを追加するときに私がそれが管理セクションで正常に動作する場合、私は同じ問題を抱えています。モジュールとサイトのフォルダは一緒に固執する必要があります – CagCak

関連する問題