ModuleNotFoundError при запуске скрипта Python из Supervisor - PullRequest
0 голосов
/ 18 октября 2018

Я использую супервизор, чтобы запустить скрипт Python из моего пакета.Когда я пытаюсь запустить процесс от супервизора, он порождает ошибку: Exited too quickly (process log may have details).Но все в порядке, когда этот скрипт запускается из терминала:

cd /var/www/html/MyProject
source venv/bin/activate
python src/main.py

Конфигурация процесса Supervisor:

[program:MyProject]
directory=/var/www/html/MyProject/
command=/var/www/html/MyProject/venv/bin/python src/main.py
autostart=true
autorestart=true
stdout_logfile = /var/www/html/MyProject/logs/myproject_testing-out.txt
stdout_logfile_maxbytes = 3MB
stdout_logfile_backups = 3
stderr_logfile = /var/www/html/MyProject/logs/myproject_testing-err.txt
stderr_logfile_maxbytes = 3MB
stderr_logfile_backups = 3

Ошибка в лог-файле (/var/www/html/MyProject/logs/myproject_testing-err.txt):

Traceback (most recent call last):
  File "src/main.py", line 8, in <module>
    import src.config as config
ModuleNotFoundError: No module named 'src'

Что я делаю не так?

1 Ответ

0 голосов
/ 18 октября 2018

Если оба пакета main.py и config.py или config находятся в src, вам не нужно импортировать конфигурацию подобным образом, вы можете просто импортировать ее следующим образом:

import config

Если вы хотите импортировать его из src, как вы это делаете, возможно, вам не хватает файла __init__.py в этой папке, чтобы сделать его пакетом, хотя наличие исходной папки в качестве пакета не имеет особого смысла.

...