[mod_python] Module getting imported twice?

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
>


More information about the Mod_python mailing list