Skip to content

Commit

Permalink
site customization hook...
Browse files Browse the repository at this point in the history
  • Loading branch information
gvanrossum committed Aug 17, 1996
1 parent bf51afa commit e57c96e
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions Lib/site.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
"""Hook to allow easy access to site-specific modules.
Scripts or modules that need to use site-specific modules should place
import site
somewhere near the top of their code. This will append up to two
site-specific paths ($prefix/lib/site-python and
$exec_prefix/lib/site-python) to the module search path. ($prefix
and $exec_prefix are configuration parameters, and both default
to /usr/local; they are accessible in Python as sys.prefix and
sys.exec_prefix).
Because of Python's import semantics, it is okay for more than one
module to import 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; $prefix/lib/site-python is for
Python source code and $exec_prefix/lib/site-python is for dynamically
loadable extension modules (shared libraries).
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 ignored.
Note that for 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.
XXX Any suggestions as to how to handle this for non-Unix systems???
"""

import sys, os

for prefix in sys.prefix, sys.exec_prefix:
if prefix:
sitedir = os.path.join(prefix, os.path.join("lib", "site-python"))
if sitedir not in sys.path and os.path.isdir(sitedir):
sys.path.append(sitedir) # Add path component

try:
import sitecustomize # Run arbitrary site specific code
except ImportError:
pass # No site customization module

0 comments on commit e57c96e

Please sign in to comment.