site — 不同平台的配置管理
优质
小牛编辑
139浏览
2023-12-01
Import Path
# site_import_path.py
import sys
import os
import site
if 'Windows' in sys.platform:
SUFFIXES = [
'',
'lib/site-packages',
]
else:
SUFFIXES = [
'lib/python{}/site-packages'.format(sys.version[:3]),
'lib/site-python',
]
print('Path prefixes:')
for p in site.PREFIXES:
print(' ', p)
for prefix in sorted(set(site.PREFIXES)):
print()
print(prefix)
for suffix in SUFFIXES:
print()
print(' ', suffix)
path = os.path.join(prefix, suffix).rstrip(os.sep)
print(' exists :', os.path.exists(path))
print(' in path:', path in sys.path)
User Directories
# site_user_base.py
import site
print('Base:', site.USER_BASE)
print('Site:', site.USER_SITE)
# site_enable_user_site.py
import site
status = {
None: 'Disabled for security',
True: 'Enabled',
False: 'Disabled by command-line option',
}
print('Flag :', site.ENABLE_USER_SITE)
print('Meaning:', status[site.ENABLE_USER_SITE])
Path Configuration Files
# with_modules/mymodule.py
import os
print('Loaded {} from {}'.format(
__name__, __file__[len(os.getcwd()) + 1:])
)
# site_addsitedir.py
import site
import os
import sys
script_directory = os.path.dirname(__file__)
module_directory = os.path.join(script_directory, sys.argv[1])
try:
import mymodule
except ImportError as err:
print('Could not import mymodule:', err)
print()
before_len = len(sys.path)
site.addsitedir(module_directory)
print('New paths:')
for p in sys.path[before_len:]:
print(p.replace(os.getcwd(), '.')) # shorten dirname
print()
import mymodule
Customizing Site Configuration
# with_sitecustomize/sitecustomize.py
print('Loading sitecustomize.py')
import site
import platform
import os
import sys
path = os.path.join('/opt',
'python',
sys.version[:3],
platform.platform(),
)
print('Adding new path', path)
site.addsitedir(path)
# with_sitecustomize/site_sitecustomize.py
import sys
print('Running main program from\n{}'.format(sys.argv[0]))
print('End of path:', sys.path[-1])
Customizing User Configuration
# with_usercustomize/usercustomize.py
print('Loading usercustomize.py')
import site
import platform
import os
import sys
path = os.path.expanduser(os.path.join('~',
'python',
sys.version[:3],
platform.platform(),
))
print('Adding new path', path)
site.addsitedir(path)
# with_usercustomize/site_usercustomize.py
import sys
print('Running main program from\n{}'.format(sys.argv[0]))
print('End of path:', sys.path[-1])