2009-09-23 74 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