2010-03-04 75 views
1

使用CentOS5,我用以下指令配置了Apache。使用Python 2.4,Python 2.5腳本失敗的Apache

Alias /pscript/ /var/www/pscript/ 
<Directory "/var/www/pscript/"> 
    Options +ExecCGI 
    DirectoryIndex thetest.py 
    AddHandler cgi-script .py 
</Directory> 

當我打電話www.domain.com/pscript/然後我的Python腳本運行,並打印出我的sys.path,這是顯示python2.4

當我調用一個需要Python 2.5的不同腳本時,我得到一個500內部服務器錯誤。

看着我的Apache的error_log,我看到了下面一行:

[Wed Mar 03 16:58:44 2010] [error] [client 000.000.000.000] Please use Python 2.5 or greater 

在命令行中,運行python -V返回Python 2.5.5。我安裝了2.4和2.5.5,但只能使用2.5.5。

爲了解決Apache問題,我重新編譯了Python 2.5.5以確保安全,並確保啓用共享庫。然後我重新編譯mod_python以防萬一,這會影響某些內容,但我的sys.path仍然是python2.4

我想知道,我是否需要重新編譯Apache 2.2.3本身?我只需要Apache來利用Python 2.5.5。

在此先感謝。

回答

3

是否Python腳本具有第一行是這樣的:

#!/usr/bin/python 

如果是這樣,也許/usr/bin/python是Python版本2.4,而直接在命令行中運行python運行的是不同的Python可執行文件(版本2.5)從你路上的其他地方。嘗試:

which python 

,看看有什麼可執行文件正在運行,當你在命令行中運行python

+0

從命令行我得到/ usr/local/bin/python,這是Python 2.5.5安裝。 – Structure 2010-03-04 06:52:53

+0

你的Python腳本是否在頂部有'#!/ usr/local/bin/python',或者其他的東西? – 2010-03-04 07:06:24

+0

就是這樣。該腳本調用/ usr/bin/env來調用python。它一定是一直在喊錯。我已將腳本更新爲'#!/ usr/local/bin/python',並且打印我的'sys.path'現在顯示它正在使用正確的版本。謝謝! – Structure 2010-03-04 07:15:35