Gregory (Grisha) Trubetskoy
grisha at modpython.org
Mon May 24 11:46:29 EDT 2004
Sean - I couldn't quite figure this out - do you actually have more than one jotwebutils.py in the sys.path? Grisha On Mon, 24 May 2004, Sean Reifschneider wrote: > I'm having a kind of weird problem and I don't fully understand why it's > happening. Basically, it seems that sometimes a module I'm importing > (from site-packages), is losing it's mind. It's like half way through a > function it's running in entirely a different name-space. Yes, this can > happen while making two calls into a module on successive lines of a > function. > > What I traced it down to is that different calls are showing the > following values for the module: > > <module 'jotweb.jotwebutils' from > '/usr/lib/python2.2/site-packages/jotweb/jotwebutils.py'> > <module > '/var/www/jotweb/www.tummy.jotweb.jotwebutils' from > '/usr/lib/python2.2/site-packages/jotweb/jotwebutils.py'> > > I really don't understand the latter. My HTML and site-related python > files are in "/var/www/jotweb/www.tummy.com/html". > > If, in jotwebutils.py, I dump the stack when the module is imported, I > see that the first time it's imported with the following: > > File "/var/tmp/mod_python-3.0.4-root/usr/lib/python2.2/site-packages/mod_python/apache.py", > line 274, in HandlerDispatch > File "/var/tmp/mod_python-3.0.4-root/usr/lib/python2.2/site-packages/mod_python/apache.py", > line 440, in import_module > File "lib/jotweb/__init__.py", line 32, in ? > > and the second time it's imported with: > > File "/var/tmp/mod_python-3.0.4-root/usr/lib/python2.2/site-packages/mod_python/apache.py", > line 274, in HandlerDispatch > File "/usr/lib/python2.2/site-packages/jotweb/jotweb_mod_python.py", > line 45, in handler def handler(req): > [... Deep into the bowels of my handler code ...] > File "/var/www/jotweb/www.tummy.com/html/navigation.py", > line 3, in ? import time, string, re, dircache, math > File "lib/jotweb/__init__.py", line 32, in ? > > Now, it should be noted that I'm using the "imp" module to load modules > dynamically when they are referenced from my HTML templates. But the > code in question that is triggering this is: > > from jotweb import jotwebutils > import jotweb > > navbar = jotwebutils.getGlobal('navbar') > urlBase = jotweb.config.getconfig().get('tummyurlbase', 'unknown') > > jotwebutils.getGlobal is very simple: > > def getGlobal(name): > from jotweb import config > return(config.getconfig()['talglobalvars'][name].value()) > > If I change the "tummyurlbase" line above to: > > urlBase = jotwebutils.getGlobal('jotwebconfig').get('tummyurlbase', 'unknown') > > it works fine. I can do many "getGlobal()" lines, but if I do a > "getconfig()", it's suddenly using another jotwebutils module. > > Note that all the jotweb imports are done using "import". Only local > files in my HTML directory are imported using the "imp" module. > > I'm able to find workarounds for these issues in most cases, but it's > kind of driving me crazy as far as when something will work and when it > will lose it's mind. > > I tried moving getconfig() into the jotwebutils module, but that just > seemed to make it worse. Then getGlobal() was also acting this way. > > Any thoughts? > > Thanks, > Sean > -- > How does a girl like you get to be a girl like you? > -- _North_by_Northwest_ > Sean Reifschneider, Member of Technical Staff <jafo at tummy.com> > tummy.com, ltd. - Linux Consulting since 1995. Qmail, Python, SysAdmin > _______________________________________________ > Mod_python mailing list > Mod_python at modpython.org > http://mailman.modpython.org/mailman/listinfo/mod_python >
|