|
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 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/python2.3/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 it to sys.path
and also inspects the newly added path for 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. Lines
starting with import are executed.
For example, suppose sys.prefix and sys.exec_prefix are set to /usr/local. The Python 2.3.3 library is then installed in /usr/local/lib/python2.3 (where only the first three characters of sys.version
are used to form the installation path name). Suppose this has a subdirectory /usr/local/lib/python2.3/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/python2.3/site-packages/bar
/usr/local/lib/python2.3/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.
|