Вот так выглядит структура файлов
diasmart - это папка с проектом, где хранятся settings.py, wsgi.py и тд
У меня есть bash файл
start_gunicorn.sh
#!/bin/bash
source /root/DiaStore/env/bin/activate # виртуальное окружение
exec gunicorn -c "/root/DiaStore/src/gunicorn_config.py" diasmart.wsgi
После этого у меня есть конфиг supervisor, который запускает gunicorn с помощью start_gunicorn.sh
Но я получил ошибку из start_gunicorn.py:
self.callable = self.load()
File "/root/DiaStore/env/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
return self.load_wsgiapp()
File "/root/DiaStore/env/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
return util.import_app(self.app_uri)
File "/root/DiaStore/env/lib/python3.8/site-packages/gunicorn/util.py", line 358, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 961, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'diasmart'
[2020-07-30 16:50:09 +0000] [109587] [INFO] Worker exiting (pid: 109587)
[2020-07-30 16:50:09 +0000] [109585] [INFO] Shutting down: Master
[2020-07-30 16:50:09 +0000] [109585] [INFO] Reason: Worker failed to boot.
Все остальные вещи кроме запуска гуникорна корректные, путем экспериментов, я думаю что ошибка кроется в start_gunicorn.sh, а именно неправильно заданный путь до wsgi (diasmart.wsgi). Я перемещал этот скрипт в разные директории и запускал из них, но всегда эта же ошибка, что нет указанного модуля (в данном случае diasmart).
Как можно это исправить?