WSGIPythonPath¶
- Description:
Additional directories to search for Python modules.
- Syntax:
WSGIPythonPath
directory|directory-1:directory-2:…- Context:
server config
Used to specify additional directories to search for Python modules. If multiple directories are specified they should be separated by a ‘:’ if using a UNIX like system, or ‘;’ if using Windows. If any part of a directory path contains a space character, the complete argument string to WSGIPythonPath must be quoted.
When using mod_wsgi version 1.X, this directive is the same as having set
the environment variable PYTHONPATH
in the environment of the user
that Apache executes as. If this directive is used it will override any
setting of PYTHONPATH
in the environment of the user that Apache
executes as. The end result is that the listed directories will be added
to sys.path
.
Note that in mod_wsgi version 1.X this applies to all Python sub interpreters created, be they in the Apache child processes when embedded mode is used, or in distinct daemon processes when daemon mode is used. It is not possible to define this differently for mod_wsgi daemon processes. If additional directories need to be added to the module search path for a specific WSGI application it should be done within the WSGI application script itself.
When using mod_wsgi version 2.0, this directive does not have the same
affect as having set the environment variable PYTHONPATH
. In fact, if
PYTHONPATH
is set in the environment of the user that Apache is
started as, any directories so defined will still be added to
sys.path
and they will not be overridden.
The difference with this directive when using mod_wsgi 2.0 is that each
directory listed will be added to the end of sys.path
by calling
site.addsitedir()
. By using this function, as well as the directory
being added to sys.path
, any ‘.pth’ files located in the directories
will be opened and processed. Thus, if the directories contain Python eggs,
any associated directories corresponding to those Python eggs will in turn
also be added automatically to sys.path
.
Note however that when using mod_wsgi 2.0, this directive only sets up the additional Python module search directories for interpreters created in the Apache child processes where embedded mode is used. If directories need to be specified for interpreters running in daemon processes, the ‘python-path’ option to the WSGIDaemonProcess directive corresponding to that daemon process should instead be used.
In mod_wsgi version 2.0, because directories corresponding to Python eggs
are automatically added to sys.path
, the directive can be used to
point at the site-packages
directory corresponding to a Python
virtual environment created by a tool such as virtualenv
.
For mod_wsgi 1.X, this directive will have no affect if mod_python is being loaded into Apache at the same time as mod_wsgi as mod_python will in that case be responsible for initialising Python.