我正在尝试使用 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
进入网站首页时,显示如下内容: 正在运行 sys.version_info(major=2,minor=7,micro=5,releaselevel='final',serial=0)
,表明Python虽然可以工作,但不是在虚拟环境中调用。
既然这是启用virtualenv
的错误方法,那么哪个是正确的方法呢?
只需使用设置 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', ...
我是一名优秀的程序员,十分优秀!