diff options
author | Guido van Rossum <guido@python.org> | 1997-08-30 20:03:28 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1997-08-30 20:03:28 (GMT) |
commit | 28cad964eced3d4fddc6350da60569a48443d0e2 (patch) | |
tree | c1ee56215b35233e30de8d81a05078f8b59009b1 /Doc/libsite.tex | |
parent | 36764b8b0e2f7fee83196bb08d78efda7092c472 (diff) | |
download | cpython-28cad964eced3d4fddc6350da60569a48443d0e2.zip cpython-28cad964eced3d4fddc6350da60569a48443d0e2.tar.gz cpython-28cad964eced3d4fddc6350da60569a48443d0e2.tar.bz2 |
Document newly revamped site configuration mechanism.
Damn the criticism in c.l.p!
Diffstat (limited to 'Doc/libsite.tex')
-rw-r--r-- | Doc/libsite.tex | 82 |
1 files changed, 63 insertions, 19 deletions
diff --git a/Doc/libsite.tex b/Doc/libsite.tex index 9b7eb91..3dffd1c 100644 --- a/Doc/libsite.tex +++ b/Doc/libsite.tex @@ -2,29 +2,73 @@ \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). +\strong{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 +\code{import site} somewhere near the top of their code. This is no +longer necessary. + +This will append up site-specific paths to to the module search path. +It starts with \code{sys.prefix} and \code{sys.exec_prefix} (if +different) and appends \file{lib/python\var{version}/packages}. The +resulting directory, if it exists, is added to \code{sys.path}, and +also inspected for path configuration files. A path configuration +file is a file whose name has the form \file{\var{package}.pth}; its +contents are additional directories (one per line) to be added to +\code{sys.path}. Non-existing directories (or non-directories) are +never added to \code{sys.path}; no directory is added to +\code{sys.path} more than once. Blank lines and lines beginning with +\code{\#} are skipped. +\index{package} +\kwindex{sys.prefix} +\kwindex{sys.exec_prefix} +\kwindex{prefix} +\kwindex{exec_prefix} + +For example, suppose \code{sys.prefix} and \code{sys.exec_prefix} are +set to \file{/usr/local}. The Python 1.5 library is then installed in +\file{/usr/local/lib/python1.5}. Suppose this has a subdirectory +\file{/usr/local/python1.5/packages} with three subsubdirectories, +\file{foo}, \file{bar} and \file{spam}, and two path configuration +files, \file{foo.pth} and \file{bar.pth}. Assume \file{foo.pth} +contains the following: + +\bcode\begin{verbatim} +# foo package configuration + +foo +bar +bletch +\end{verbatim}\ecode + +and \file{bar.pth} contains: + +\bcode\begin{verbatim} +# bar package configuration + +bar +\end{verbatim}\ecode + +Then the following directories are added to sys.path, in this order: + +\bcode\begin{verbatim} +/usr/local/python1.5/packages/bar +/usr/local/python1.5/packages/foo +\end{verbatim}\ecode + +Note that \file{bletch} is omitted because it doesn't exist; the +\file{bar} directory precedes the \file{foo} directory because +\file{bar.pth} comes alphabetically before \file{foo.pth}; and +\file{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 \code{sitecustomize}, which can perform arbitrary site-specific customizations. If this import fails with an \code{ImportError} -exception, it is ignored. +exception, it is silently ignored. +\stmodindex{sitecustomize} -Note that for non-Unix systems, \code{sys.prefix} and +Note that for some 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. |