Django dice: ningún módulo llamado ‘blog’

Recibo el "ModuleNotFoundError: No module named 'blog'" cuando agrego la aplicación de mi blog a la sección INSTALLED_APPS de settings.py . He determinado que tiene algo que ver con la forma en que agregué la aplicación “blog” en INSTALLED_APPS. Cuando elimino la referencia ‘blog’ de INSTALLED_APPS error desaparece. ¿Parece que Django no puede encontrar el directorio de mi aplicación de blog?

He hecho una cosa diferente y eso es uso:

 python manage.py startapp blog /myproject 

La diferencia aquí es especificar el directorio /myproject y no usar:

 python manage.py startapp blog 

Lo que lo colocará bajo el directorio raíz de myproject . Quería evitar agregar el directorio de aplicaciones en la carpeta raíz para mantenerme más organizado. ¿Pero parece que a Django no le gusta esto o no estoy haciendo referencia a esto correctamente en la sección INSTALLED_APPS ?

El directorio de mi proyecto es el siguiente:

 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 

Dentro de mi settings.py he configurado mi blog aplicación:

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

Django necesita poder importar su aplicación, por lo general esto significa incluir la ruta completa relativa al directorio raíz 'myproject.blog' .

Puedes agregar /myproject/myproject a PYTHONPATH para que puedas importar el blog , pero no lo recomendaría

La estructura del directorio es inusual. Más habitual y el que coincida con tu aplicación que se llama blog sería

 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