|
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
>
|