Модуль установлен, но "ModuleNotFoundError: Нет модуля с именем <имя_модуля>", который запускает gunicorn
Я пытаюсь развернуть этот сайт с помощью nginx. Сайт настроен правильно, и это было проверено, когда я запускаю python manage.py runserver. Но когда я запускаю то же самое с помощью gunicorn и wsgi, gunicorn --bind 0.0.0.0:8002 config.wsgi выдает ошибку: ModuleNotFoundError: No module named 'crispy_forms'.
Crispy_forms установлены и проверены с помощью pip freeze. Виртуальная среда также включена. 'crispy-forms' также уже добавлен в INSTALLED_APPS в settings.py.
Ниже приведен код моей ошибки:
Вот структура моего проекта, я изменил имя папки конфигурационных файлов на "config".
tmc_site
-- .
-- ..
-- assets
-- config
-- asgi.py
-- __init__.py
-- __pycache__
-- settings.py
-- urls.py
-- wsgi.py
-- db.json
-- db.sqlite3
- .git
-- .gitattributes
-- .gitignore
-- manage.py
-- requirements.txt
-- static
-- venv
-- website
Ниже приведены мои материалы, связанные с wsgi, в файлах:
settings.py: WSGI_APPLICATION = 'config.wsgi.application'
wsgi.py:
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
application = get_wsgi_application()
Любая помощь будет принята с благодарностью.
Из сообщения об ошибке видно, что установленный gunicorn пытается использовать глобальную среду Python в каталоге /usr/local/lib/python3.8/dist-packages/, а не виртуальную среду конкретного проекта в каталоге /tmp/tmc_site/venv.
Установите gunicorn в виртуальный env venv, так что после его активации команда gunicorn --bind 0.0.0.0:8002 config.wsgi будет использовать локальный с правильным окружением. Вы также можете вызвать gunicorn непосредственно из виртуального env через ./venv/bin/gunicorn.
