Разделение 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
]