2011-11-26 36 views
1

我已经使用mod_wsgi部署了一个Pyramid应用程序。wsgi应用程序使用较旧的Python版本

我已经安装在虚拟主机Python路径:

WSGIDaemonProcess MyApp user=myUser group=staff threads=4 python-path=/home/myapp/env/lib/python2.7/site-packages 
WSGIScriptAlias//home/myapp/env/pyramid.wsgi 

进行调试,在pyramid.wsgi,我也提出:

import sys 

print(sys.path) 
print(sys.version) 

当我访问应用程序,我可以看到该应用程序使用python 2.6而不是2.7!

的sys.path的输出这样的:

['/home/myapp/env/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg', 
'/home/myapp/env/lib/python2.7/site-packages/pip-1.0.1-py2.7.egg', 
'/home/myapp/env/lib/python2.7/site-packages', 
'/home/myapp/env/lib/python2.7/site-packages/PIL', 
'/opt/local/lib/python2.6/site-packages/setuptools-0.6c12dev_r88846-py2.6.egg', 
'/opt/local/lib/python2.6/site-packages/virtualenv-1.6.1-py2.6.egg', 
'/opt/local/lib/python26.zip', 
'/opt/local/lib/python2.6', 
'/opt/local/lib/python2.6/plat-sunos5', 
'/opt/local/lib/python2.6/lib-tk', 
'/opt/local/lib/python2.6/lib-old', 
'/opt/local/lib/python2.6/lib-dynload', 
'/opt/local/lib/python2.6/site-packages'] 

你可以看到蟒蛇2.6路径是存在的,但如果我ssh到服务器并执行Python它启动python2.7。

2.6哪里来的?哪个用户(apache?)正在调用这个wsgi应用程序,以便我可以更改它的python环境?

请帮忙!

回答

1

而不是使用Apache与mod_wsgi你应该看看使用更相关的网络服务器的python如gunicorn。 Gunicorn是用python编写的,速度非常快,但最重要的是,您可以轻松地告诉它在不编译/链接不同版本的情况下运行哪个python版本。

它一样容易:

pip install gunicorn 
gunicorn --workers=2 /home/myapp/env/pyramid.wsgi:app 
2

mod_wsgi并不关心版本python是什么版本。它是针对Python库本身构建的,因此如果您希望它使用不同的版本,则需要重新构建它。

相关问题