| \section{Standard Module \sectcode{site}} |
| \stmodindex{site} |
| |
| Scripts or modules that need to use site-specific modules should |
| execute \code{import site} somewhere near the top of their code. This |
| will append up to two site-specific paths (\code{sys.prefix + |
| '/lib/site-python'} and |
| \code{sys.exec_prefix + '/lib/site-python'}) to the module search path. |
| \code{sys.prefix} and \code{sys.exec_prefix} are configured when Python is installed; the default value is \file{/usr/local}. |
| |
| Because of Python's import semantics, it is okay for more than one |
| module to import \code{site} -- only the first one will execute the |
| site customizations. The directories are only appended to the path if |
| they exist and are not already on it. |
| |
| Sites that wish to provide site-specific modules should place them in |
| one of the site specific directories; \code{sys.prefix + |
| '/lib/site-python'} is for Python source code and |
| \code{sys.exec_prefix + '/lib/site-python'} is for dynamically |
| loadable extension modules (shared libraries). |
| |
| After these path manipulations, an attempt is made to import a module |
| named \code{sitecustomize}, which can perform arbitrary site-specific |
| customizations. If this import fails with an \code{ImportError} |
| exception, it is ignored. |
| |
| Note that for non-Unix systems, \code{sys.prefix} and |
| \code{sys.exec_prefix} are empty, and the path manipulations are |
| skipped; however the import of \code{sitecustomize} is still attempted. |