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.