|
Graham Dumpleton
grahamd at dscpl.com.au
Sat Feb 26 03:29:20 EST 2005
On 26/02/2005, at 5:01 PM, Jorey Bump wrote:
> On a practical note, this approach shows promise for "registering"
> your published modules. For example, let's assume you have some
> modules named holygrail.py, lifeofbrian.py and meaningoflife.py. Your
> config could include this:
>
> <FilesMatch "holygrail|lifeofbrian|meaningoflife">
>
> The names are sophisticated enough to easily avoid accidental
> collisions with other file names/types, and you can place the modules
> anywhere within the specified directory, to any depth.
>
> But the real fun begins when you use multiple directives to register
> modules to specific subinterpreters (to support multiple developers,
> for example):
>
> <Directory /var/www>
> PythonInterpPerDirective On
> <FilesMatch "holygrail|lifeofbrian|meaningoflife">
> SetHandler python-program
> PythonHandler mod_python.publisher
> PythonDebug On
> PythonPath "['/home/monty/python'] + sys.path"
> </FilesMatch>
> <FilesMatch "jabberwocky|timebandits|brazil">
> SetHandler python-program
> PythonHandler mod_python.publisher
> PythonDebug On
> PythonPath "['/home/gilliam/python'] + sys.path"
> </FilesMatch>
> </Directory>
>
> A configuration like this allows multiple developers to work somewhat
> independently, yet reduces the risk of namespace collisions when
> importing custom modules. Because these directives can be included in
> a .htaccess file instead of a <Directory> container, coordination
> among developers can be accomplished fairly easily.
You would be better off not using PythonInterpPerDirective. Just set the
interpreter name directly. Ie.,
<Directory /var/www>
<FilesMatch "holygrail|lifeofbrian|meaningoflife">
PythonInterpreter "monty"
SetHandler python-program
PythonHandler mod_python.publisher
PythonDebug On
PythonPath "['/home/monty/python'] + sys.path"
</FilesMatch>
<FilesMatch "jabberwocky|timebandits|brazil">
PythonInterpreter "gilliam"
SetHandler python-program
PythonHandler mod_python.publisher
PythonDebug On
PythonPath "['/home/gilliam/python'] + sys.path"
</FilesMatch>
</Directory>
This way in a different part of the directory hierarchy one could extend
the set of files which are handled within a specific interpreter for a
user.
|