mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +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
 | 
