如何配置全局主管使用pyenv和virtualenv
How to configure global supervisor to use pyenv and virtualenv
我正在将 Django 安装从 1.4 升级到 1.7,这意味着我也在从 Python 2.6.6 迁移到 Python 2.7。生产服务器使用 Debian 6.09,全局需要 python 2.6,不幸的是升级 OS 目前不是有效的解决方案。
为了解决这个问题,我安装了以下堆栈:
- pyenv 与 python 2.7
- 虚拟环境
- virtualenvwrapper
- uwsgi
- supervisor(从全局 python 2.6 安装,运行 作为 root)
- nginx
当我从 virtualenv 手动 运行 uwsgi 时,该站点运行良好。但是,当我用 supervisor 启动它时,它只会使用全局 python install.
作为 virtualenv 用户:
(django1.7)user@staging:~$ echo $PATH
/home/user/.virtualenvs/django1.7/bin:/home/user/.pyenv/shims:/home/user/.pyenv/bin:/usr/local/bin:/usr/bin:/bin
我的主管配置文件:
[program:app]
command = /home/user/.virtualenvs/django1.7/bin/uwsgi
--module app.wsgi
--socket 127.0.0.1:10001
--master
--harakiri 120
--max-requests 5000
--threads 6
directory=/home/user/app/
environment=PATH="/home/user/.virtualenvs/django1.7/bin:/home/user/.pyenv/shims:/home/user/.pyenv/bin:",DJANGO_SETTINGS_MODULE="app.settings",HOME="/home/user"
user=user
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
谁能帮忙指出我的配置哪里不对?
谢谢!
uWSGI 有一个特定的 virtualenv
配置指令:
virtualenv=/home/user/.virtualenvs/django1.7
另一个例子:
https://github.com/miohtama/LibertyMusicStore/blob/master/conf/uwsgi.ini
更多信息
http://uwsgi-docs.readthedocs.org/en/latest/tutorials/dreamhost.html?highlight=virtualenv
(看起来关于 virtualenv
的 uWSGI 文档有点混乱,我可能需要与作者仔细核实)
我发布的配置最终起作用了。我很愚蠢,没有先 运行 supervisorctl update 以确保它加载到更新的配置中。
我正在将 Django 安装从 1.4 升级到 1.7,这意味着我也在从 Python 2.6.6 迁移到 Python 2.7。生产服务器使用 Debian 6.09,全局需要 python 2.6,不幸的是升级 OS 目前不是有效的解决方案。
为了解决这个问题,我安装了以下堆栈:
- pyenv 与 python 2.7
- 虚拟环境
- virtualenvwrapper
- uwsgi
- supervisor(从全局 python 2.6 安装,运行 作为 root)
- nginx
当我从 virtualenv 手动 运行 uwsgi 时,该站点运行良好。但是,当我用 supervisor 启动它时,它只会使用全局 python install.
作为 virtualenv 用户:
(django1.7)user@staging:~$ echo $PATH
/home/user/.virtualenvs/django1.7/bin:/home/user/.pyenv/shims:/home/user/.pyenv/bin:/usr/local/bin:/usr/bin:/bin
我的主管配置文件:
[program:app]
command = /home/user/.virtualenvs/django1.7/bin/uwsgi
--module app.wsgi
--socket 127.0.0.1:10001
--master
--harakiri 120
--max-requests 5000
--threads 6
directory=/home/user/app/
environment=PATH="/home/user/.virtualenvs/django1.7/bin:/home/user/.pyenv/shims:/home/user/.pyenv/bin:",DJANGO_SETTINGS_MODULE="app.settings",HOME="/home/user"
user=user
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
谁能帮忙指出我的配置哪里不对?
谢谢!
uWSGI 有一个特定的 virtualenv
配置指令:
virtualenv=/home/user/.virtualenvs/django1.7
另一个例子:
https://github.com/miohtama/LibertyMusicStore/blob/master/conf/uwsgi.ini
更多信息
http://uwsgi-docs.readthedocs.org/en/latest/tutorials/dreamhost.html?highlight=virtualenv
(看起来关于 virtualenv
的 uWSGI 文档有点混乱,我可能需要与作者仔细核实)
我发布的配置最终起作用了。我很愚蠢,没有先 运行 supervisorctl update 以确保它加载到更新的配置中。