Graham Dumpleton commented on MODPYTHON-220:

Workaround is that instead of using:

  import module


  from mod_python import apache
  module = apache.import_module("module")

> In PSP pages, 'import' doesn't map through to apache.import_module().
> ---------------------------------------------------------------------
>                 Key: MODPYTHON-220
>                 URL: https://issues.apache.org/jira/browse/MODPYTHON-220
>             Project: mod_python
>          Issue Type: Improvement
>          Components: psp
>    Affects Versions: 3.3.1
>            Reporter: Graham Dumpleton
> When Python code appears in SSI files, a trick is performed such that the 
> Python code in the SSI files is seen as having been originally imported using 
> the new module importer. This means that if 'import' is used with the Python 
> code, it will map through to apache.import_module() and first use that 
> mechanism to try and import code modules. This trick is not performed for PSP 
> pages however.
> What needs to be done for PSP pages is the equivalent of the SSI trick:
>             class _InstanceInfo:
>                 def __init__(self, label, file, cache):
>                     self.label = label
>                     self.file = file
>                     self.cache = cache
>                     self.children = {}
>             filter.req.ssi_globals["__file__"] = filter.req.filename
>             filter.req.ssi_globals["__mp_info__"] = _InstanceInfo(
>                     None, filter.req.filename, None)
>             filter.req.ssi_globals["__mp_path__"] = []
> What this is doing is setting up in the environment of the SSI code object 
> the magic variables that 'import' hook looks for to allow it to map to 
> apache.import_module().
> If same done in PSP pages then 'import' will map to apache.import_module() 
> for PSP pages also as first step.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

Reply via email to