Rolf van de Krol
mod_python at rolfvandekrol.nl
Tue Aug 28 11:52:14 EDT 2007
Hi everybody at this list, I've got a problem. To me it seems quite complex so explaining it takes some code to write. But i'm a total newbie to mod_python. I've read the documentation, I understand it, I managed to setup a running mod_python installation and I can write some simple applications with it. That's it. So, my apologies for the amount of code in the message, I hope you can bring the effort to read it to understand my problem. I enclosed python code in <code> tags to show where the code begins and ends. I've set up two VirtualHosts with the following directives in httpd.conf. (I changed some names, because the domainnames used for this are not to be published.) NameVirtualHost *:80 <VirtualHost *:80> ServerName domain1.ext ServerAdmin admin at domain1.ext <Location /> Order Allow,Deny Allow from all SetHandler mod_python PythonInterpreter domain1interpreter PythonHandler D:/main.py PythonDebug On </Location> </VirtualHost> <VirtualHost *:80> ServerName admin.domain1.ext ServerAdmin admin at domain1.ext <Location /> Order Allow,Deny Allow from all SetHandler mod_python PythonInterpreter domain1interpreter PythonHandler D:/radmin.py PythonDebug On </Location> </VirtualHost> As you can see, they both share the same interpreter. The setup works. With the following python code in main.py and radmin.py they both print the same name. <code> from mod_python import apache def handler(req): req.content_type = 'text/plain' req.write(req.interpreter) return apache.OK </code> I changed main.py to the following code: <code> from mod_python import apache import collections def handler(req): if not globals().has_key('aPool'): aPool = collections.deque() global aPool else: global aPool # code to use aPool and print some output </code> aPool is used to create a database connection pool, but that's not important to the problem. The code above works fine. I change radmin.py to the following: <code> from mod_python import apache import collections import pprint def handler(req): req.content_type = 'text/plain' req.write(pprint.pformat(globals())) </code> What I expected was that I could find aPool in the output of radmin.py. But I couldn't. It just isn't there. It seems that the global names aren't as global as they seem to be. Is there a way to make variables set in main.py accessable to radmin.py? I hope any of you knows the answer. Rolf van de Krol
|