Graham Dumpleton
grahamd at dscpl.com.au
Mon Jul 4 20:05:05 EDT 2005
=?windows-1252?Q?Martin_MOKREJ=8A?= wrote .. > > Because of problems with mixing "import" with the mod_python module > > loader, you are actually better of using: > > > > from mod_python import apache > > import os > > > > directory = os.path.dirname(__file__) > > > > web_settings = apache.import_module("web_settings",path=[directory]) > > > > Here you are explicitly telling it which directory to get the module > > from and avoid all problems with things not being found in the Python > > module search path. You should only use this for loading in your own > > modules though, not standard Python modules. > > Graham, how can I fork the code so that for normal "console" use it would > do > normal import and that when running under mod_apache it would run this > trick? > I use the modules also for command-line tests and some utilities. > What variable should I look for in __dict__.keys()? ;-) You could use: try: from mod_python import apache directory = os.path.dirname(__file__) web_settings = apache.import_module("web_settings",path=[directory]) except: import web_settings The import of "apache" from a command line script will fail and thus it will fall through to normal "import" statement for importing web_settings. There are cleaner ways, but it gets quite complicated and the mod_python module importing system as implemented by apache.import_module() has some problems at the moment which makes it even worse. This all might get solved in a future version of mod_python and at that point the cleaner way may be available. Graham
|