mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""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
 |