Uploaded image for project: 'mod_python'
  1. mod_python
  2. MODPYTHON-143 Implement and integrate a new module importer.
  3. MODPYTHON-156

Module imports from server side includes and new importer.



    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 3.3.1
    • importer
    • None


      With old module importer, where Python*Handler directives are used in a directory context, that directory is added to sys.path. Now where Python code is being used with server side includes in that same directory and code of form:

      module = apache.import_module("xxx")

      is used with "xxx.py" also being in the same directory, it will be found due to the directory being added to sys.path.

      With the new module importer, the directory isn't added to sys.path and so the module would not be found.

      In the case of a handler module (rather than SSI Python code), such a module import would still work, as the new module importer is smart enough to realise that the caller was also imported using the new module importer and thus would look in the same directory first or as necessary, in the directory the Python*Handler directive was specified for. This will not work for SSI code though, as it is not part of an imported module and is eval/exec'd on each page request.

      What is thus required is for the global environment in which the SSI code is executed for a specific page, to be automatically marked up in such a way that the new module importer believes it was imported as a module by the new module importer, thus triggering it to look in the same directory for modules.




            grahamd Graham Phillip Dumpleton
            grahamd Graham Phillip Dumpleton
            0 Vote for this issue
            0 Start watching this issue