MLi*_*ter 21 python deployment virtualenv virtualenvwrapper supervisord
当我开发和测试我的项目时,我曾经使用virtualenvwrapper来管理环境并运行它:
workon myproject
python myproject.py
Run Code Online (Sandbox Code Playgroud)
当然,一旦我在正确的virtualenv,我使用正确版本的Python,以及其他相应的库来运行我的项目.
现在,我想使用Supervisord来管理同一个项目,因为它已准备好部署.问题是在执行脚本之前告诉Supervisord激活正确的virtualenv的正确方法是什么?我是否需要编写一个单独的bash脚本来执行此操作,并在Supervisord配置文件的命令字段中调用该脚本?
dm0*_*514 48
从命令行使用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
Run Code Online (Sandbox Code Playgroud)
将你的virtualenv/bin路径添加到你supervisord.conf的environment:
[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
Run Code Online (Sandbox Code Playgroud)
第一次运行
$ workon myproject
$ dirname `which python`
/home/username/.virtualenvs/myproject/bin
Run Code Online (Sandbox Code Playgroud)
添加以下内容
environment=PATH="/home/username/.virtualenvs/myproject/bin"
Run Code Online (Sandbox Code Playgroud)
到 [program:blabla] 部分下的相关supervisord.conf。
| 归档时间: |
|
| 查看次数: |
25120 次 |
| 最近记录: |