如何讓 Apache 執行 Python 2.7 而不是 2.5?
如何讓 Apache 執行 2.7 而不是 2.5?
我正在將 Apache 配置為在 Django 和 Python 2.7 中使用 mod_wsgi,但錯誤日誌顯示 Apache 正在使用 Python 2.5.2 並且找不到 django.core.handlers.wsgi。
該模組可用於 python 和 django shell,每個都執行 2.7,所以我認為問題是 Apache 的 python 版本。
我從原始碼(在 Debian 系統上)安裝了 Python 2.7.1,並將符號連結 /usr/bin/python 更改為指向 /usr/local/bin/python2.7,其中“make install”放置了二進製文件。python 和 django shell 都啟動了 2.7.1(這些可以導入 wsgi 模組)。
可能相關——當我將符號連結移回以前的版本時(某些安裝需要 apt-get),python shell 仍然出現 2.7.1。Django 沒有。我在安裝過程中遺漏了什麼嗎?
更新:這 - https://stackoverflow.com/questions/4186099/django-running-wrong-version - 表明問題可能是 mod_wsgi 或 mod_python 是為 Python 2.5 建構的。
我已經嘗試從原始碼建構 mod_wsgi,但是該過程沒有找到 apxs,並且安裝 libapache2-dev(如 mod_wsgi 站點所建議)的努力正在轟炸可解除安裝的依賴項。如果不將 Python 指向 debian 預設值 2.5,我就無法通過 apt-get 安裝 mod_wsgi 或 mod_python。不知道如何在這裡擺脫困境。
更新 2:選擇將 Python 回滾到 2.5。
我推測 Apache 正在進入 Python 2.5 b/c,它在 mods-enabled 中找到了對應於 Python 2.5 的 mod_wsgi.so-2.5。mod_wsgi 的編譯可能會在其中放置一個 .so-2.7 模組,但這需要 apache2-dev,並且 Debian 軟體包因一些缺少的依賴問題而中斷,並且回滾判斷了 valor 的更好部分,沒有人會關心那個或這個連續的回顧,但是,如果,溫柔的讀者,一些 python2.7 + apache hairball 把你帶到這裡,這些時間傷痕的註釋讓你省了一點時間,為我舉杯。精益求精!晚安。
最後更新: apache2-dev 問題已通過 aptitude 安裝解決,而不是 apt-get。
你需要 Python 2.7 有真正的理由嗎?可以為 2.5 安裝 Django,並且 Debian 軟體包將保留適用於 python 2.5 的安全相關更新檔。為什麼不保留 Debian 儲存庫中的所有庫存,並為 2.5 安裝 Django?這將為您節省大量從原始碼編譯的工作,使安裝更容易,它還將使升級和維護更加簡單,並且將來不太可能中斷。
——克里斯托弗·卡雷爾
/usr/bin/python 是唯一的“執行檔”嗎?
做什麼
ls -l /usr/bin/python*
顯示?和
ls -l /usr/bin/X11/python*
和
type -a python
?