[ http://issues.apache.org/jira/browse/MODPYTHON-126?page=comments#action_12365820 ]
Graham Dumpleton commented on MODPYTHON-126: -------------------------------------------- It is impossible to fix this in a way that wouldn't require additional configuration directives to be added to the example. The only way to get access to the directory associated with the explicit/implicit "Directory" directive enclosing the "Files" directive is for there to exist some other Python directive outside of the "Files" directive so as to trigger the creation of a per_dir_config which would then hold the config_dir. This would still require the code which merges the per_dir_config's to give precedence to a config_dir in a parent context when it is an absolute pathname and the current isn't. Determining if a directory on Win32 is an absolute pathname can be hard and can't find a Apache routine which does it. Either way, it still would require another mod_python directive to have been used, meaning a dummy one may need to be added to fake things so it works properly. Overall, what might be better is that support for using "Python*Handler" inside of "Files" directives be accomodated using other means based on future changes to be made to the module importer. Thus, need to revisit this problem when importer is fixed. > PythonHandler in <Files> directive sets req.hlist.directory to useless value. > ----------------------------------------------------------------------------- > > Key: MODPYTHON-126 > URL: http://issues.apache.org/jira/browse/MODPYTHON-126 > Project: mod_python > Type: Bug > Components: core > Versions: 3.2 > Reporter: Graham Dumpleton > > When you have Apache ".htaccess" configuration like: > SetHandler mod_python > #PythonPath "['/Users/grahamd/Sites/auth']+sys.path" > <Files "page1.txt"> > PythonHandler page1::handler_txt > </Files> > <Files "page2.txt"> > PythonHandler page2::handler_txt > </Files> > and "page1.txt" is accessed, the req.hlist.directory attribute, which is > supposed to list the name of the directory the PythonHandler directive was > used in, gets set to "page1.txt/" instead. > This value then gets added into "sys.path". Because it doesn't actually > identify the directory, the module "page1" cannot actually be found when the > import is performed. > [Fri Feb 10 09:08:40 2006] [error] [client 127.0.0.1] PythonHandler > page1::handler_txt: Traceback (most recent call last): > [Fri Feb 10 09:08:40 2006] [error] [client 127.0.0.1] PythonHandler > page1::handler_txt: File > "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/mod_python/apache.py", > line 288, in HandlerDispatch\n log=debug) > [Fri Feb 10 09:08:40 2006] [error] [client 127.0.0.1] PythonHandler > page1::handler_txt: File > "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/mod_python/apache.py", > line 508, in import_module\n f, p, d = imp.find_module(parts[i], path) > [Fri Feb 10 09:08:40 2006] [error] [client 127.0.0.1] PythonHandler > page1::handler_txt: ImportError: No module named page1 > The only workaround at this point is to explicitly define the PythonPath > directive to include the directory the modules and ".htaccess" file are in. > Not sure yet whether there is a way in Apache of determining the directory > the "Files" directive is used in and set "req.hlist.directory" correctly. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira