Разделение settings.py на prod и dev вызывает ошибку ModuleNotFoundError, почему?

I am new to django and trying to deploy my app. I would like to split my settings in two (dev and prod).

When I did python manage.py runserver with just one settings.py file, it worked perfectly.

I have now the following folder structure:

  • apps
  • core
    • pycache
    • settings
      • pycache
      • init.py
      • base.py
      • dev.py
      • prod. py
    • init.py
    • asgi.py
    • urls.py
    • utils.py
    • wsgi.py
  • media
  • etc.

base.py

Когда я запускаю python manage.py runserver --settings=core.settings.dev, у меня возникает следующая ошибка:

(monoi_virtualenv) C:\Users\alexis.lerendu-perne\Documents\monoi>python manage.py runserver --settings=core.settings.dev
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
  File "C:\Python39\Lib\threading.py", line 954, in _bootstrap_inner
    self.run()
  File "C:\Python39\Lib\threading.py", line 892, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\alexis.lerendu-perne\Documents\monoi_virtualenv\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\alexis.lerendu-perne\Documents\monoi_virtualenv\lib\site-packages\django\core\management\commands\runserver.py", line 110, in inner_run
    autoreload.raise_last_exception()
  File "C:\Users\alexis.lerendu-perne\Documents\monoi_virtualenv\lib\site-packages\django\utils\autoreload.py", line 87, in raise_last_exception
    raise _exception[1]
  File "C:\Users\alexis.lerendu-perne\Documents\monoi_virtualenv\lib\site-packages\django\core\management\__init__.py", line 375, in execute
    autoreload.check_errors(django.setup)()
  File "C:\Users\alexis.lerendu-perne\Documents\monoi_virtualenv\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\alexis.lerendu-perne\Documents\monoi_virtualenv\lib\site-packages\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Users\alexis.lerendu-perne\Documents\monoi_virtualenv\lib\site-packages\django\apps\registry.py", line 91, in populate
    app_config = AppConfig.create(entry)
  File "C:\Users\alexis.lerendu-perne\Documents\monoi_virtualenv\lib\site-packages\django\apps\config.py", line 212, in create
    mod = import_module(mod_path)
  File "C:\Python39\Lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'account'

I guess this error has something to do with AUTH_USER_MODEL in base.py ... Is that correct ? How can I fix this problem ?

dev.py

from .base import *

prod.py

from .base import *
DEBUG = False

Попробуйте переместить приложения django по умолчанию наверх в INSTALLED_APPS следующим образом.

INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "django_extensions",
    .... #Your Apps Here
]
Вернуться на верх