Запустите pipenv от супервизора - PullRequest
0 голосов
/ 30 октября 2018

На моем Ubuntu 18.04.1 LTS я установил pipenv, используя pip3. Я также установил supervisor.

Моя цель:

Я хочу, чтобы супервизор запустил мой test.sh скрипт, содержащий команду pipenv run.

Мой test.sh скрипт:

#!/bin/bash

/root/local/bin/pipenv run echo "2222222"

Моя конфигурация супервизора в /etc/supervisor/conf.d/mysite.conf:

[program:mysite]

command = /var/www/mysite/test.sh
user = root
stdout_logfile = /var/www/mysite/.gunicorn/logs/gunicorn_supervisor.log
redirect_stderr = true                                                     
environment=LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8

Моя проблема:

Когда я запускаю /var/www/mysite/test.sh прямо из консоли, все работает как положено. Однако, если супервизор запускает мой bash-скрипт, используя конфигурацию, указанную выше, выдается следующий невежественный след.

Traceback (most recent call last):
  File "/usr/local/bin/pipenv", line 11, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/pipenv/cli/command.py", line 396, in run
    command=command, args=args, three=state.three, python=state.python, pypi_mirror=state.pypi_mirror
  File "/usr/local/lib/python3.6/dist-packages/pipenv/core.py", line 2217, in do_run
    ensure_project(three=three, python=python, validate=False, pypi_mirror=pypi_mirror)
  File "/usr/local/lib/python3.6/dist-packages/pipenv/core.py", line 601, in ensure_project
    validate=validate, skip_requirements=skip_requirements, system=system
  File "/usr/local/lib/python3.6/dist-packages/pipenv/core.py", line 324, in ensure_pipfile
    project.create_pipfile(python=python)
  File "/usr/local/lib/python3.6/dist-packages/pipenv/project.py", line 644, in create_pipfile
    config_parser = ConfigOptionParser(name=self.name)
  File "/usr/local/lib/python3.6/dist-packages/pipenv/patched/notpip/_internal/baseparser.py", line 141, in __init__
    assert self.name
AssertionError

Есть идеи, почему руководитель не может правильно запустить мой bash-скрипт? Я подозреваю, что это потому, что в pipenv при запуске супервизором отсутствуют определенные переменные окружения.

Обратите внимание, что все мои пути являются абсолютными, как предлагается здесь: настроить pipenv с супервизором

...