[ 
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

Reply via email to