cinap_lenrekadd hg and python4bb9e2215 years agoHistory
88 lines · 3.3 KB · TeX
RawDownload
\section{\module{site} ---         Site-specific configuration hook} \declaremodule{standard}{site}\modulesynopsis{A standard way to reference site-specific modules.}  \strong{This module is automatically imported during initialization.}The automatic import can be suppressed using the interpreter's\programopt{-S} option. Importing this module will append site-specific paths to the modulesearch path.\indexiii{module}{search}{path} It starts by constructing up to four directories from a head and atail part.  For the head part, it uses \code{sys.prefix} and\code{sys.exec_prefix}; empty heads are skipped.  Forthe tail part, it uses the empty string and then\file{lib/site-packages} (on Windows) or\file{lib/python\shortversion/site-packages} and then\file{lib/site-python} (on \UNIX{} and Macintosh).  For each of thedistinct head-tail combinations, it sees if it refers to an existingdirectory, and if so, adds it to \code{sys.path} and also inspectsthe newly added path for configuration files.\indexii{site-python}{directory}\indexii{site-packages}{directory} A path configuration file is a file whose name has the form\file{\var{package}.pth} and exists in one of the four directoriesmentioned above; its contents are additional items (oneper line) to be added to \code{sys.path}.  Non-existing items arenever added to \code{sys.path}, but no check is made that the itemrefers to a directory (rather than a file).  No item is added to\code{sys.path} more than once.  Blank lines and lines beginning with\code{\#} are skipped.  Lines starting with \code{import} are executed.\index{package}\indexiii{path}{configuration}{file} For example, suppose \code{sys.prefix} and \code{sys.exec_prefix} areset to \file{/usr/local}.  The Python \version\ library is theninstalled in \file{/usr/local/lib/python\shortversion} (where only thefirst three characters of \code{sys.version} are used to form theinstallation path name).  Suppose this has a subdirectory\file{/usr/local/lib/python\shortversion/site-packages} with threesubsubdirectories, \file{foo}, \file{bar} and \file{spam}, and twopath configuration files, \file{foo.pth} and \file{bar.pth}.  Assume\file{foo.pth} contains the following: \begin{verbatim}# foo package configuration foobarbletch\end{verbatim} and \file{bar.pth} contains: \begin{verbatim}# bar package configuration bar\end{verbatim} Then the following directories are added to \code{sys.path}, in thisorder: \begin{verbatim}/usr/local/lib/python2.3/site-packages/bar/usr/local/lib/python2.3/site-packages/foo\end{verbatim} 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 pathconfiguration file. After these path manipulations, an attempt is made to import a modulenamed \module{sitecustomize}\refmodindex{sitecustomize}, which canperform arbitrary site-specific customizations.  If this import failswith an \exception{ImportError} exception, it is silently ignored. Note that for some non-\UNIX{} systems, \code{sys.prefix} and\code{sys.exec_prefix} are empty, and the path manipulations areskipped; however the import of\module{sitecustomize}\refmodindex{sitecustomize} is still attempted.