25

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

workon myproject
python myproject.py

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

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

4

3 に答える 3

55

コマンド ラインから 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
于 2013-03-04T14:09:26.377 に答える
10

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
于 2016-02-05T16:21:36.787 に答える
5

ファーストラン

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

以下を追加

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

関連する Supervisord.conf の [program:blabla] セクションに移動します。

于 2013-09-11T16:51:11.363 に答える