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
|