Ошибка при команде gunicorn --bind 0.0.0.0:8000 prokat.wsgi
Есть проект на джанго, задеплоил его на сервер, но при запуске gunicorn командой:
gunicorn --bind 0.0.0.0:8000 prokat.wsgi
Выдает ошибку:
django.core.exceptions.ImproperlyConfigured: Requested setting LOGGING_CONFIG, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
Мне кажется, что ошибка в какой-то мелочи, я не знаю что делать.. По совету в ошибке прошелся, но толку нет.
Python 3.10.6
Ubuntu 22.04
Django 3.2.14
Полностью ошибка:
[2022-11-03 08:48:50 +0000] [13216] [INFO] Starting gunicorn 20.1.0
[2022-11-03 08:48:50 +0000] [13216] [INFO] Listening at: http://0.0.0.0:8000 (13216)
[2022-11-03 08:48:50 +0000] [13216] [INFO] Using worker: sync
[2022-11-03 08:48:50 +0000] [13217] [INFO] Booting worker with pid: 13217
[2022-11-03 08:48:51 +0000] [13217] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/home/eltimccc/dev/prokat-pskov/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/home/eltimccc/dev/prokat-pskov/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", line 134, in init_process
self.load_wsgi()
File "/home/eltimccc/dev/prokat-pskov/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/home/eltimccc/dev/prokat-pskov/venv/lib/python3.10/site-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/home/eltimccc/dev/prokat-pskov/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/home/eltimccc/dev/prokat-pskov/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/home/eltimccc/dev/prokat-pskov/venv/lib/python3.10/site-packages/gunicorn/util.py", line 359, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/home/eltimccc/dev/prokat-pskov/prokat/prokat/wsgi.py", line 16, in <module>
application = get_wsgi_application()
File "/home/eltimccc/dev/prokat-pskov/venv/lib/python3.10/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "/home/eltimccc/dev/prokat-pskov/venv/lib/python3.10/site-packages/django/__init__.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/home/eltimccc/dev/prokat-pskov/venv/lib/python3.10/site-packages/django/conf/__init__.py", line 82, in __getattr__
self._setup(name)
File "/home/eltimccc/dev/prokat-pskov/venv/lib/python3.10/site-packages/django/conf/__init__.py", line 63, in _setup
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Requested setting LOGGING_CONFIG, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
[2022-11-03 08:48:51 +0000] [13217] [INFO] Worker exiting (pid: 13217)
[2022-11-03 08:48:51 +0000] [13216] [INFO] Shutting down: Master
[2022-11-03 08:48:51 +0000] [13216] [INFO] Reason: Worker failed to boot.
wsgi.py:
import os
from django.core.wsgi import get_wsgi_application
("DJANGO_SETTINGS_MODULE", "prokat.settings")
application = get_wsgi_application()
settings.py:
import os
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = "django-insecure-zxmyk^gb(#c7c7f-y^ml&&sjjdlhutcynj5tki^9tsmihm$odd"
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
# Application definition
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"car.apps.CarConfig",
"mail.apps.MailConfig",
"widget_tweaks",
"sorl.thumbnail",
"news.apps.NewsConfig",
"service.apps.ServiceConfig",
"django_summernote",
]
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]
ROOT_URLCONF = "prokat.urls"
TEMPLATES_DIR = os.path.join(BASE_DIR, "templates")
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [TEMPLATES_DIR],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
"mail.context_processors.call_orders",
"django.template.context_processors.debug",
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
],
},
},
]
WSGI_APPLICATION = "prokat.wsgi.application"
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": os.path.join(BASE_DIR, "db.sqlite3"),
}
}
AUTH_PASSWORD_VALIDATORS = [
{
"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
},
{
"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
},
{
"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",
},
{
"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",
},
]
LANGUAGE_CODE = "en-us"
TIME_ZONE = "UTC"
USE_I18N = True
USE_L10N = True
USE_TZ = True
STATIC_ROOT = "staticfiles"
STATIC_URL = "/static/"
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"