Ошибка развертывания Django "usage: gunicorn [OPTIONS] [APP_MODULE] gunicorn: error: unrecognized arguments: "

Я пытаюсь развернуть приложение Django на виртуальной машине Linux, созданной на Google Computing Engine (GCE). Мое доменное имя работает нормально, но сервер wsgi не запускается из-за ошибки в заголовке.
. supervisor.log выглядит как tis.

.
.
.
usage: gunicorn [OPTIONS] [APP_MODULE]
gunicorn: error: unrecognized arguments:
usage: gunicorn [OPTIONS] [APP_MODULE]
gunicorn: error: unrecognized arguments:
usage: gunicorn [OPTIONS] [APP_MODULE]
gunicorn: error: unrecognized arguments:
usage: gunicorn [OPTIONS] [APP_MODULE]
gunicorn: error: unrecognized arguments:
usage: gunicorn [OPTIONS] [APP_MODULE]
gunicorn: error: unrecognized arguments:
usage: gunicorn [OPTIONS] [APP_MODULE]
gunicorn: error: unrecognized arguments:

Мне трудно устранить неполадки, потому что он не говорит мне, куда смотреть.

Ошибка возникает, когда я запускаю gunicorn_start через такие команды, как sudo supervisorvtl restart tutorial или chmod +x .../venv/bin/gunicorn_start, потому что я могу запустить содержимое файла непосредственно через терминал.

Вот как выглядит мое дерево файлов:

/webapp/user
        |--- req.txt
        |--- venv
        |--- tutorial
            |-- req.txt
            |--manage.py
            |--tutorial
            .
            .
            .
                |--wsgi.py
                |--settings.py
                .
                .
                .

Я подумал, что причина этой ошибки кроется в содержимом файла gunicorn_start. Поэтому я запустил shell-скрипты из этого файла прямо в терминале виртуальной машины, и сервер wsgi, похоже, работает нормально. Вот результат.

Моя gunicorn_start выглядит следующим образом:

#!/bin/sh
NAME='tutorial'
DJANGODIR=/home/user/webapp/user/tutorial
SOCKFILE=/home/user/webapp/user/venv/run/gunicorn.sock
USER=user
GROUP=user
NUM_WORKERS=3
DJANGO_SETTINGS_MODULE=tutorial.settings
DJANGO_WSGI_MODULE=tutorial.wsgi
TIMEOUT=120

cd $DJANGODIR
. ../venv/bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH
RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR

exec ../venv/bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
--chdir /home/user/webapp/yoshi/tutorial \
--name $NAME \
--workers $NUM_WORKERS \
--timeout $TIMEOUT \
--user=$USER --group=$GROUP \
--bind=unix:$SOCKFILE \
--log-level=debug \
--log-file=-

Вот как выглядит .conf:

[program:tutorial]

command = /home/user/webapp/user/venv/bin/gunicorn_start
user = user
stdout_logfile = /home/user/webapp/user/venv/logs/supervisor.log
redirect_stderr = true
environment=LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8

Вот как выглядит ~/webapp/user/req.txt:

asgiref==3.5.2
cachetools==5.1.0
certifi==2021.10.8
charset-normalizer==2.0.12
Django==4.0.4
google-api-core==2.7.3
google-auth==2.6.6
google-cloud-secret-manager==2.10.0
googleapis-common-protos==1.56.1
grpc-google-iam-v1==0.12.4
grpcio==1.46.1
grpcio-status==1.46.1
gunicorn==20.1.0
idna==3.3
mysql-connector==2.2.9
mysqlclient==2.1.0
proto-plus==1.20.3
protobuf==3.20.1
pyasn1==0.4.8
pyasn1-modules==0.2.8
PyMySQL==1.0.2
requests==2.27.1
rsa==4.8
six==1.16.0
sqlparse==0.4.2
urllib3==1.26.9
Вернуться на верх