如何在WSGI中使用虚拟环境运行Python?
我正在尝试在一个沙盒环境中使用WSGI和Apache运行Python。
我创建了一个虚拟环境:
virtualenv /var/www/demo-environment --python /usr/bin/python3.3
我还创建了一个名为
/var/www/demo.py
的文件:#!/usr/bin/env python import sys def application(environ, start_response): start_response('200 OK', [('Content-Type', 'text/plain')]) return "Running " + str(sys.version_info)
最后,我像这样修改了Apache的配置:
WSGIPythonPath /var/www/demo-environment/lib/python3.3/site-packages/ WSGIDaemonProcess example.com python-path=/var/www/demo-environment/lib/python3.3/site-packages/ WSGIProcessGroup example.com WSGIScriptAlias / /var/www/demo.py
当我访问网站的主页时,显示的内容是:Running sys.version_info(major=2, minor=7, micro=5, releaselevel='final', serial=0)
,这说明Python是可以工作的,但并没有在虚拟环境中运行。
因为这是启用 virtualenv
的错误方法,那正确的方法是什么呢?
1 个回答
1
只需要使用设置 WSGIPythonHome
来指定你的环境的根目录:
WSGIPythonHome /home/grapsus/work/python/env
WSGIScriptAlias /demo /home/grapsus/work/python/demo.py
我修改了你的脚本,让它打印出 sys.path
:
Running ['/home/grapsus/work/python/env/lib/python2.7', ...