Daphne ModuleNotFoundError: Нет модуля с именем 'app_name'
Когда я запускаю daphne -b 0.0.0.0 -p 8000 --access-log=daphne.log config.asgi:application
я получаю Daphne ModuleNotFoundError: No module named 'app_name'
Но когда я запускаю python3 manage.py runserver
, он работает нормально?
Когда я удаляю app_1
из INSTALLED_APPS
, он показывает мне ModuleNotFoundError: No module named 'app_2'
Вот моя структура папок:
project_name
│ __init__.py
│ manage.py
│
└───config
│ │ __init__.py
│ │ asgi.py
│ │ celery.py
│ │ urls.py
│ │ wsgi.py
│ │
│ └───settings
│ │
│ │ __init__.py
│ │ base.py
│ │ dev.py
│ │ prod.py
│
│
└───project_name
│ │ __init__.py
│ │
│ └───app_1
│ └───app_2
│ └───app_3
│
└───media
│
└───static
asgi.py
:
from django.core.asgi import get_asgi_application
django_asgi_app = get_asgi_application()
from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
from chat import routing
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.dev')
application = ProtocolTypeRouter({
'http': django_asgi_app,
'websocket': AuthMiddlewareStack(
URLRouter(
routing.websocket_urlpatterns
)
),
})
Мне пришлось добавить папку, в которой лежат все мои приложения, в переменную окружения PYTHONPATH таким образом:
PYTHONPATH="${PYTHONPATH}:/project_name/project_name"
вот так. добавьте путь окружения к asgi.py
from channels.auth import AuthMiddlewareStack
import sys
sys.path.append('your-project-abspath')
import chat.routing
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'env.settings')
application = ProtocolTypeRouter(
{
"http":get_asgi_application(),
"websocket": AuthMiddlewareStack(
URLRouter(
chat.routing.websocket_urlpatterns
)
),
}
)