summaryrefslogtreecommitdiffstats
path: root/Doc/lib/libsite.tex
blob: 9b7eb91ff28a4d12b1c8b1b23e55147f06cb4b33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
\section{Standard Module \sectcode{site}}
\label{module-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.