diff options
author | Guido van Rossum <guido@python.org> | 1996-08-17 19:56:26 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1996-08-17 19:56:26 (GMT) |
commit | e57c96ee4cef00515e3bf6529d6888c4b5f8483b (patch) | |
tree | d9c17810dfaee6c5af72526819aa4f88d9a5cde8 /Lib/site.py | |
parent | bf51afa049898d2a8f6a18133f8a25a47c15a32f (diff) | |
download | cpython-e57c96ee4cef00515e3bf6529d6888c4b5f8483b.zip cpython-e57c96ee4cef00515e3bf6529d6888c4b5f8483b.tar.gz cpython-e57c96ee4cef00515e3bf6529d6888c4b5f8483b.tar.bz2 |
site customization hook...
Diffstat (limited to 'Lib/site.py')
-rw-r--r-- | Lib/site.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/Lib/site.py b/Lib/site.py new file mode 100644 index 0000000..d2420cf --- /dev/null +++ b/Lib/site.py @@ -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 |