[mod_python] New Module Importer Woes

Luke Burden luke at demonware.net
Mon Mar 3 20:18:03 EST 2008


Hi all,

I get swamped with ImportErrors when using the latest module importer
with mod_python 3.3 / apache 2.2 / python 2.5.

The site structure is quite flat - all the python source files in:
/var/www/sitename/src/

And all the psps in:

/var/www/sitename/src/psps/

The apache configuration is nothing special, and is thus:

<Directory "/var/www/sitename/src">
        SetHandler mod_python
        PythonHandler mainhandler
        PythonDebug On
        PythonInterpreter sitename
</Directory>

Import statements from .psp files in the psps directory are what are failing.
So for example, /var/www/sitename/src/psps/page.psp might have a line,
"import model", hoping to get it's sweaty hands on
/var/www/sitename/src/model.py.  But an ImportError will occur, of the
form:

======
Traceback (most recent call last):

  File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line
1537, in HandlerDispatch
    default=default_handler, arg=req, silent=hlist.silent)

  File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line
1229, in _process_target
    result = _execute_target(config, req, object, arg)

  File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line
1128, in _execute_target
    result = object(arg)

  File "/var/www/sitename/src/mainhandler.py", line 290, in handler
    return genpages.page(req)

  File "/var/www/sitename/src/genpages.py", line 20, in page
    template.run(vars=vars)

  File "/usr/lib/python2.5/site-packages/mod_python/psp.py", line 243, in run
    exec code in global_scope

  File "/var/www/sitename/src/psps/page.psp", line 2, in <module>
    import model

ImportError: No module named model
======

The frustrating thing is, in the module cache dump, you can see
model.py has been loaded successfully already so it's in scope.

I've tried apache directives to add the src folder to the importer
path, but haven't had any success with that.
Any suggestions anyone?  Is there a better way of structuring modules
/ psps to be mod_python 3.3 compatible?  Any advice really
appreciated, thanks.

- luke


More information about the Mod_python mailing list