3.20 Standard Module 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 , library is then installed in `/usr/local/lib/python,'. Suppose this has a subdirectory `/usr/local/python,/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,sitecustomize, which can perform arbitrary site-specific customizations. If this import fails with an ImportError exception, it is silently ignored.

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,sitecustomize is still attempted.

guido@python.org