如何在主管中使用virtualenvwrapper?

2024-05-15 20:24:38 发布

您现在位置:Python中文网/ 问答频道 /正文

在开发和测试项目时,我曾使用virtualenvwrapper管理环境并运行它:

workon myproject
python myproject.py

当然,一旦我在正确的virtualenv中,我就使用正确版本的Python和其他相应的库来运行我的项目。

现在,我想使用Supervisord来管理准备部署的同一个项目。问题是,在执行脚本之前,告诉Supervisord激活正确的virtualenv的正确方法是什么?我是否需要编写一个单独的bash脚本来执行此操作,并在Supervisord config文件的命令字段中调用该脚本?


Tags: 项目方法py版本脚本bashconfig环境
3条回答

首先,跑

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

添加以下内容

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

发送到[程序:blabla]部分下的相关supervisord.conf。

将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

从命令行使用virtualenv的一种方法是使用virtualenv中的python可执行文件。

对我来说,我的虚拟环境在.virtualenvs目录中。例如

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

不需要workon

对于管理tornado应用程序的supervisor.conf,我会:

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

相关问题 更多 >