summaryrefslogtreecommitdiffstats
path: root/Lib/site.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1996-08-17 19:56:26 (GMT)
committerGuido van Rossum <guido@python.org>1996-08-17 19:56:26 (GMT)
commite57c96ee4cef00515e3bf6529d6888c4b5f8483b (patch)
treed9c17810dfaee6c5af72526819aa4f88d9a5cde8 /Lib/site.py
parentbf51afa049898d2a8f6a18133f8a25a47c15a32f (diff)
downloadcpython-e57c96ee4cef00515e3bf6529d6888c4b5f8483b.zip
cpython-e57c96ee4cef00515e3bf6529d6888c4b5f8483b.tar.gz
cpython-e57c96ee4cef00515e3bf6529d6888c4b5f8483b.tar.bz2
site customization hook...
Diffstat (limited to 'Lib/site.py')
-rw-r--r--Lib/site.py47
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