| James Paige 
    jamesp at westcoastaerospace.com Tue Jan 24 17:51:47 EST 2006 
 I'm new to mod_python... so maybe I have missed something fundamental 
here, but mod_python seems to be keeping several copies of my old code 
in memory, so when I make changes and reload the page, sometimes I get 
my changes, and sometimes I get a seemingly-random version of the code 
that I have already changed.
Here is a simple test-case I set up.
Here is my .htaccess file:
-------------------------
SetHandler python-program
PythonHandler main
PythonDebug On
-------------------------
(I am using version 2.7.10 as shipped in Debian stable's 
libapache-mod-python package, which is why I am using "python-program")
Here is my main.py
-----------------------------
from mod_python import apache
import testmodule
def handler(req):
     req.write("Hello World!")
     testmodule.foo(req)
     return apache.OK
-----------------------------
and here is the imported testmodule.py
--------------------------------
def foo(req):
    req.write('three blind mice')
--------------------------------
The first time I load this test in my web browser, I see the expected 
result:
   Hello World!three blind mice
I edit testmodule.py and change the string to something else:
--------------------------------------
def foo(req):
    req.write('mary had a little lamb')
--------------------------------------
I then reload my web browser. Sometimes this results in "Hello 
World!mary had a little lamb", and sometimes it reuslts in "Hello 
World!three blind mice"
I edit the string again, and hit reload again. Maybe I get the new 
string.... or maybe I get one of the strings I used previously. I keep 
making changes to testmodule.py and I keep reloading the results, and 
the results are almost always wrong.
I know this is not a browser cache problem. I have cleared/disabled my 
web-browser's cache.
I read about "Multiple Interpreters" in the documentation, and have 
tried to force my code to run in a single interpreter by adding:
PythonInterpreter "test_interpreter"
to my .htaccess file, but that makes no difference.
This problem only occurs in the included module. I can edit main.py and 
my changes are always applied. I notice in the apache logs that 
everytime I reload the page I see:
   [notice] mod_python: (Re)importing main from None
But I can find no way to force testmodule to be re-imported. What am I 
doing wrong?
---
James Paige
 |