2009-09-23 22 views
0

我使用mod_python.publisher運行Python代碼並發現了一個問題:當我更新腳本時,更新並不總是立即生效,而且我得到了與更新相同的錯誤,直到重新啓動Apache。mod_python解釋器的緩存未在腳本更改時重置?

有時候它可以馬上工作,但有時候不會......但重新啓動Apache肯定總能把它趕上來。重新啓動Apache非常痛苦,我認爲還有更好的方法來做到這一點 - 但是它是什麼?

+2

考慮切換到mod_wsgi,您可以使用unix'touch'命令更輕鬆地控制它。 – 2009-09-23 11:44:32

回答

3

這是mod_python的預期行爲。你的代碼被加載到內存中,直到服務器重新啓動纔會被刷新。

你有兩個選擇:

  1. 設定MaxRequestsPerChild 1在httpd.conf文件中強制Apache重裝所有的東西對每個請求。

  2. 設置PythonAutoReload是在
    http://www.modpython.org/live/mod_python-3.2.5b/doc-html/dir-other-par.html

但不這樣做,在生產服務器上,因爲它會初始化時間慢下來。

+0

這不適用於我的主機無權訪問。太糟糕了每個修補程序都需要等待很長時間才能上線。 – 2012-08-05 12:36:32