当我开发和测试我的项目时,我曾经使用virtualenvwrapper来管理环境并运行它:
workon myproject
python myproject.py
当然,一旦我使用了正确的virtualenv,我就使用了正确版本的Python,以及其他相应的库来运行我的项目。
现在,我想使用Supervisord管理同一个项目,因为它已准备好部署。问题是在执行脚本之前告诉Supervisord激活正确的virtualenv的正确方法是什么?我是否需要编写一个单独的bash脚本来执行此操作,并在Supervisord配置文件的命令字段中调用该脚本?
答案 0 :(得分:46)
从命令行使用virtualenv的一种方法是使用位于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
答案 1 :(得分:6)
将您的virtualenv / bin路径添加到supervisord.conf
的{{1}}:
environment
答案 2 :(得分:3)
首先,运行
$ workon myproject
$ dirname `which python`
/home/username/.virtualenvs/myproject/bin
添加以下
environment=PATH="/home/username/.virtualenvs/myproject/bin"
到[program:blabla]部分下的相关supervisord.conf。