@strangesfagnum
Увлеченный прокрастинатор

Как настроить путь к app module в django?

Всем доброго времени суток!

При запуске сервера UWSGI при помощи команды uwsgi --http :8080 --module mysite.wsgi

Выскакивает следующая ошибка:
django.core.exceptions.ImproperlyConfigured: The app module has multiple filesystem locations (['/home/django/mysite/modulename', './modulename']); you must configure this app with an AppConfig subclass with a 'path' class attribute

Никак не могу понять, что и где нужно сконфижить. Буду признателен за помощь!
  • Вопрос задан
  • 859 просмотров
Решения вопроса 1
@strangesfagnum Автор вопроса
Увлеченный прокрастинатор
Друзья, с проблемой разобрался! Нужно было задать конфигурацию для приложений, где и требовалось добавить путь

Итак, если у вас выскакивает нечто подобное, то:
1)Проверьте ваш wsgi.py (он должен находиться в той же папке, что и файлы settings.py, views.py и т.д). Я настроил его следующим образом и это работает:
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'yoursite.settings')
application = get_wsgi_application()

Пожалуйста, обратите внимание на то, что перед .settings должно быть имя вашего сайта, yoursite - условность

2)В директории приложения (рядом с ним должны лежать models.py, views.py и т.п.) проверьте наличие apps.py. В них я задал конфигурацию (пусть будет MyappConfig), как подкласс AppConfig, где и прописал путь с помощью свойства 'path'. Пример:
# Импортируем глобальный класс AppConfig
from django.apps import AppConfig

# Добавляем свойства для нашего приложения - его имя и путь
class MyappConfig(AppConfig):
    name = 'myapp'
    path = './myapp'


3)В apps.py, находящимся внутри папки yoursite (это там, где мы настраивали wsgi.py, там же лежит settings.py) импортируйте конфигурацию других приложений, пример:
from myapp.apps import MyappConfig

4)В settings.py перед INSTALLED_APPS добавьте:
from yoursite import apps

5)Пропишите установленные приложения следующим образом:
INSTALLED_APPS = [
'myapp.apps.MyappConfig',
]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Tanner
@Tanner
Огромный человекоподобный боевой робот
Такое может быть, если забыть положить файлик "__init__.py" в папку с модулем.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы