site
This module is automatically imported during initialization.
In earlier versions of Python (up to and including 1.5a3), scripts or
modules that needed to use site-specific modules would place
import site
somewhere near the top of their code. This is no
longer necessary.
This will append site-specific paths to to the module search path.
It starts by constructing up to four directories from a head and a
tail part. For the head part, it uses sys.prefix
and
sys.exec_prefix
; empty heads are skipped. For
the tail part, it uses the empty string (on Mac or Windows) or it uses
first `lib/pythonversion/site-packages
' and then
`lib/site-python
' (on Unix). For each of the distinct head-tail
combinations, it sees if it refers to an existing directory, and if
so, adds to sys.path
, and also inspected for path configuration
files.
A path configuration file is a file whose name has the form
`package.pth
'; its contents are additional items (one
per line) to be added to sys.path
. Non-existing items are
never added to sys.path
, but no check is made that the item
refers to a directory (rather than a file). No item is added to
sys.path
more than once. Blank lines and lines beginning with
#
are skipped.
For example, suppose sys.prefix
and sys.exec_prefix
are
set to `/usr/local
'. The Python 1.5 library is then installed in
`/usr/local/lib/python1.5
'. Suppose this has a subdirectory
`/usr/local/python1.5/site-packages
' with three subsubdirectories,
`foo
', `bar
' and `spam
', and two path configuration
files, `foo.pth
' and `bar.pth
'. Assume `foo.pth
'
contains the following:
# foo package configuration foo bar bletch
and `bar.pth
' contains:
# bar package configuration bar
Then the following directories are added to sys.path, in this order:
/usr/local/python1.5/site-packages/bar /usr/local/python1.5/site-packages/foo
Note that `bletch
' is omitted because it doesn't exist; the
`bar
' directory precedes the `foo
' directory because
`bar.pth
' comes alphabetically before `foo.pth
'; and
`spam
' is omitted because it is not mentioned in either path
configuration file.
After these path manipulations, an attempt is made to import a module
named sitecustomize
, which can perform arbitrary site-specific
customizations. If this import fails with an ImportError
exception, it is silently ignored.
,sitecustomize
Note that for some non-Unix systems, sys.prefix
and
sys.exec_prefix
are empty, and the path manipulations are
skipped; however the import of sitecustomize
is still attempted.
guido@CNRI.Reston.Va.US