-
-
Notifications
You must be signed in to change notification settings - Fork 29.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
bf51afa
commit e57c96e
Showing
1 changed file
with
47 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |