Ошибка ModuleNotFoundError при попытке загрузить настройки разработки
Я новичок в Django, поэтому, пожалуйста, извините за мой вопрос новичка. Я понимаю необходимость разделения конфигурации для разработки и рабочей конфигурации. Итак, я создал папку по адресу br_project/br_project/settings/
, и в ней у меня есть эти файлы:
- __init__.py
- base.py
- development.py
- production.py
Файл br_project/br_project/__init__.py
содержит:
import os
env = os.environ.get('DJANGO_ENV', 'local')
if env == 'production':
from .production import *
else:
from .development import *
При вызове .development
я получаю сообщение об ошибке: ModuleNotFoundError: No module named 'br_project.production'
Почему-то мои конфигурационные файлы не найдены. Что я неправильно настроил?
При импорте не указан каталог настроек. Приведенная ниже структура каталогов:
br_project/
├── br_project/
│ ├── __init__.py
│ ├── settings/
│ │ ├── __init__.py
│ │ ├── base.py
│ │ ├── development.py
│ │ └── production.py
вы хотели бы импортировать следующим образом:
# br_project/br_project/__init__.py
import os
env = os.environ.get('DJANGO_ENV', 'local')
if env == 'production':
from .settings.production import *
else:
from .settings.development import *
Альтернативный вариант:
Вышеописанное должно исправить вашу ошибку. В любом случае, следующее позволяет вам явно указать на файл настроек:
Определение параметров, которые вы выбираете, обычно задается переменной окружения DJANGO_SETTINGS_MODULE
. Очевидно, что это можно сделать EXPORT
в bash перед запуском python manage.py runserver
, но вы также можете включить это через
python manage.py runserver --settings=br_project.settings.production
Это позволяет вам явно указать на файл настроек. Затем вы должны ввести 'production.py' from .base import *
и 'br_project/br_project/init.py', вы можете оставить emtpy. Краткое, но полезное чтение: https://docs.djangoproject.com/en/5.1/topics/settings/