30 lines
1.4 KiB
TeX
30 lines
1.4 KiB
TeX
|
\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.
|