web-dev-qa-db-ja.com

スーパーバイザでvirtualenvwrapperを使用する方法

私がプロジェクトを開発してテストしていたとき、私はvirtualenvwrapperを使用して環境を管理し、実行していました:

workon myproject
python myproject.py

もちろん、適切なvirtualenvに入ると、適切なバージョンのPythonと、プロジェクトを実行するための他の対応するライブラリを使用していました。

ここで、Supervisordを使用して、デプロイの準備ができているのと同じプロジェクトを管理したいと思います。問題は、スクリプトを実行する前に適切なvirtualenvをアクティブにするようにSupervisordに指示する適切な方法は何ですか?これを行う別のbashスクリプトを作成し、そのスクリプトをSupervisord構成ファイルのコマンドフィールドで呼び出す必要がありますか?

21
MLister

コマンドラインからvirtualenvを使用する1つの方法は、virtualenv内にあるpython実行可能ファイルを使用することです。

私にとっては、仮想環境が.virtualenvsディレクトリ。例えば

/home/ubuntu/.virtualenvs/yourenv/bin/python

workonする必要はありません

のために supervisor.confトルネードアプリの管理:

command=/home/ubuntu/.virtualenvs/myapp/bin/python /usr/share/nginx/www/myapp/application.py --port=%(process_num)s
49
dm03514

Virtualenv/binパスをsupervisord.confenvironmentに追加します。

[program:myproj-uwsgi]
process_name=myproj-uwsgi
command=/home/myuser/.virtualenvs/myproj/bin/uwsgi
    --chdir /home/myuser/projects/myproj
    -w myproj:app
environment=PATH="/home/myuser/.virtualenvs/myproj/bin:%(ENV_PATH)s"
user=myuser
group=myuser
killasgroup=true
startsecs=5
stopwaitsecs=10
7
Stephen Fuhry

ファーストラン

$ workon myproject
$ dirname `which python`
/home/username/.virtualenvs/myproject/bin

以下を追加

environment=PATH="/home/username/.virtualenvs/myproject/bin"

[program:blabla]セクションの下の関連するsupervisord.confに。

3
onur güngör