]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
site customization hook...
authorGuido van Rossum <guido@python.org>
Sat, 17 Aug 1996 19:56:26 +0000 (19:56 +0000)
committerGuido van Rossum <guido@python.org>
Sat, 17 Aug 1996 19:56:26 +0000 (19:56 +0000)
Lib/site.py [new file with mode: 0644]

diff --git a/Lib/site.py b/Lib/site.py
new file mode 100644 (file)
index 0000000..d2420cf
--- /dev/null
@@ -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