2009-12-10 87 views
2

在紅帽子框中,我將Python從2.3升級到2.6.4,並將符號鏈接更改爲python,因此當我輸入python時,會出現2.6.4解釋器。如何升級Apache使用的Python版本?

但是,我的.py文件可以在命令行中運行,但不能在瀏覽器中運行。這似乎是一個sys.path問題,所以我在瀏覽器中打開該文件並打印出sys.path

令人驚訝的是,從瀏覽器調用時,我的sys.path與從命令行調用時不同。因爲這些路徑都是指2.3,我相信Apache正在挑選Python 2.3,而不是我安裝的新2.6.4版本。

我如何讓Apache使用Python 2.6.4?

+0

如果你沒有在這裏得到的迴應,你可能想嘗試serverfault.com。 – JeffO 2009-12-10 12:47:57

+3

您是使用mod_wsgi還是mod_python或其他鏈接? – 2009-12-10 14:58:42

回答

2

如果您使用mod_pythonmod_wsgi,你應該重新安裝它們,因爲它們可能已經被內置到你有當他們被第一次安裝在系統上的Python版本(在你的情況下它似乎是Python 2.3)。

+0

如何判斷服務器是否使用mod_python或mod_wsgi(或者更確切地說是哪個)? – Pranab 2009-12-10 16:47:55

+2

從命令行運行'httpd -M'或'apachectl -M'。您應該在您的Apache安裝中列出動態和靜態加載的模塊。 – 2009-12-10 17:27:06

+2

@Pranab - 你最有可能有mod_python。 RedHat還沒有包含mod_wsgi的版本。 您還需要重新編譯模塊才能使用正確的嵌入式解釋器。重新安裝不會改變這一點。 – JimB 2009-12-10 18:38:46

0

在RH箱的​​Apache可能運行作爲根用戶。以root身份登錄並查看哪個版本的python root可以看到。

HIH

..richie

+0

apache作爲apache運行 – JimB 2009-12-10 16:00:48

1

Apache不直接調用蟒蛇,因此該路徑是不相關的。你可能會想建立一個新的mod_wsgi來鏈接到python 2.6.4。