在RHEL上使用Python2.6而不是Python2.4运行CherryPy脚本

在RHEL 5服务器上工作。 尝试制作一个小型的CherryPy应用程序,它从url中获取参数(例如,internet.com/cherrypy/data/22/45将返回22和45),然后使用它们来查询包含这些参数的SQL Server。 然后以JSON格式返回。 困在一个相当大的路障。

RHEL 5附带了Python 2.4,2.4没有原生的JSON处理,所以我从EPEL和2.4一起安装了Python26。 我可以用python26命令运行2.6,也可以用普通的python命令运行2.4。 我读了2.4,因为我已经阅读yum取决于2.4。 然后,我从2.4中删除CherryPy,并重新安装了2.6。 我使用Mod_wsgi在Apache2下运行CherryPy。 所以我推测这可能是问题的根源。 我想如果我加了一个shebang(刚刚了解到这个,很好的名字,呵呵)给我的CherryPy脚本,它会用2.6来解释它,但是它没有,而且当我去到CherryPy应用程序(internet.com/cherrpy/)。 这是我目前的脚本:

#!/usr/bin/python2.6 import sys sys.stdout = sys.stderr import atexit import threading import cherrypy cherrypy.config.update({'environment': 'embedded'}) class Root(object): def index(self): return 'Nothing to see here. Move along.' index.exposed = True def data(self, building, ser): return 'You requested data for SER number: ' + ser + ' in building number: ' + building data.exposed = True application = cherrypy.Application(Root(), script_name=None, config=None) 

我有mod_wsgi 3.2(mod_wsgi-3.2-1.el5.x86_64.rpm)安装,我相信我通过wget下载并在本地安装,因为它不在RHEL回购。

这是我的httpd.conf适用于CherryPy的行:

 WSGIScriptAlias /cherrypy /fs1/html/data/scripts/test.py 

我不确定是否在系统上有两个版本的python,它不知道哪个解释脚本,或者mod_wsgi是罪魁祸首,我必须重新安装2.6版本( 这和链接的问题build议那 )。 有谁知道我应该怎么做?

编辑:在mod_wsgi谷歌代码页上的这个指南表明build立一个不同版本的Python的参数。 我应该这样做,并通过参数“–with-python = python26”?

编辑2:尝试从源地build设mod_wsgi与:

 sudo ./configure --with-python=/usr/bin/python26 

但运行后,我与这个垃圾迎接: http : //pastebin.com/khzctxDT这是尽可能多的复制,试图将输出写入“sudo make> file.txt文件”,但我得到权限被拒绝错误。 我想念有根…

是的,您需要根据您打算使用的特定Python版本重新构buildmod_wsgi。

如mod_wsgi源代码提供的安装说明中详细描述的要求中所述,必须安装用于Python和Apache的开发包。 你似乎没有安装Python的开发包。

因此,请检查mod_wsgi本身提供的安装说明,以及:

http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide