# 3.26 `site` -- Site-specific configuration hook

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 Macintosh 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.2 library is then installed in "`/usr/local/lib/python1.5`" (note that only the first three characters of `sys.version` are used to form the path name). Suppose this has a subdirectory "`/usr/local/lib/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/lib/python1.5/site-packages/bar
      /usr/local/lib/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.

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.