/
opt
/
alt
/
python34
/
lib64
/
python3.4
/
/opt/alt/python34/lib64/python3.4
mkdir
upload
Name
Size
Mode
Actions
asyncio/
-
0755
rm
collections/
-
0755
rm
concurrent/
-
0755
rm
config-3.4m/
-
0755
rm
ctypes/
-
0755
rm
curses/
-
0755
rm
dbm/
-
0755
rm
distutils/
-
0755
rm
email/
-
0755
rm
encodings/
-
0755
rm
ensurepip/
-
0755
rm
html/
-
0755
rm
http/
-
0755
rm
idlelib/
-
0755
rm
importlib/
-
0755
rm
json/
-
0755
rm
lib-dynload/
-
0755
rm
lib2to3/
-
0755
rm
logging/
-
0755
rm
multiprocessing/
-
0755
rm
plat-linux/
-
0755
rm
pydoc_data/
-
0755
rm
site-packages/
-
0755
rm
sqlite3/
-
0755
rm
test/
-
0755
rm
unittest/
-
0755
rm
urllib/
-
0755
rm
venv/
-
0755
rm
wsgiref/
-
0755
rm
xml/
-
0755
rm
xmlrpc/
-
0755
rm
__pycache__/
-
0755
rm
abc.py
8624
0644
edit
dl
rm
aifc.py
31578
0644
edit
dl
rm
antigravity.py
475
0644
edit
dl
rm
argparse.py
90027
0644
edit
dl
rm
ast.py
12034
0644
edit
dl
rm
asynchat.py
11825
0644
edit
dl
rm
asyncore.py
20998
0644
edit
dl
rm
base64.py
20180
0755
edit
dl
rm
bdb.py
23354
0644
edit
dl
rm
binhex.py
13928
0644
edit
dl
rm
bisect.py
2595
0644
edit
dl
rm
bz2.py
18860
0644
edit
dl
rm
calendar.py
22941
0644
edit
dl
rm
cgi.py
35941
0755
edit
dl
rm
cgitb.py
12041
0644
edit
dl
rm
chunk.py
5425
0644
edit
dl
rm
cmd.py
14860
0644
edit
dl
rm
code.py
10037
0644
edit
dl
rm
codecs.py
35910
0644
edit
dl
rm
codeop.py
5994
0644
edit
dl
rm
colorsys.py
4064
0644
edit
dl
rm
compileall.py
9618
0644
edit
dl
rm
configparser.py
49698
0644
edit
dl
rm
contextlib.py
11639
0644
edit
dl
rm
copy.py
9005
0644
edit
dl
rm
copyreg.py
6833
0644
edit
dl
rm
cProfile.py
5324
0755
edit
dl
rm
crypt.py
1879
0644
edit
dl
rm
csv.py
16185
0644
edit
dl
rm
datetime.py
75804
0644
edit
dl
rm
decimal.py
228688
0644
edit
dl
rm
difflib.py
81684
0644
edit
dl
rm
dis.py
17160
0644
edit
dl
rm
doctest.py
104492
0644
edit
dl
rm
dummy_threading.py
2815
0644
edit
dl
rm
enum.py
21538
0644
edit
dl
rm
filecmp.py
9830
0644
edit
dl
rm
fileinput.py
14865
0644
edit
dl
rm
fnmatch.py
3163
0644
edit
dl
rm
formatter.py
15173
0644
edit
dl
rm
fractions.py
23203
0644
edit
dl
rm
ftplib.py
38532
0644
edit
dl
rm
functools.py
28511
0644
edit
dl
rm
genericpath.py
3882
0644
edit
dl
rm
getopt.py
7489
0644
edit
dl
rm
getpass.py
6069
0644
edit
dl
rm
gettext.py
20767
0644
edit
dl
rm
glob.py
3461
0644
edit
dl
rm
gzip.py
24314
0644
edit
dl
rm
hashlib.py
9850
0644
edit
dl
rm
heapq.py
17997
0644
edit
dl
rm
hmac.py
5063
0644
edit
dl
rm
imaplib.py
50267
0644
edit
dl
rm
imghdr.py
3528
0644
edit
dl
rm
imp.py
9984
0644
edit
dl
rm
inspect.py
104640
0644
edit
dl
rm
io.py
3396
0644
edit
dl
rm
ipaddress.py
71598
0644
edit
dl
rm
keyword.py
2222
0755
edit
dl
rm
linecache.py
3953
0644
edit
dl
rm
locale.py
74530
0644
edit
dl
rm
lzma.py
19371
0644
edit
dl
rm
macpath.py
5619
0644
edit
dl
rm
macurl2path.py
2732
0644
edit
dl
rm
mailbox.py
78382
0644
edit
dl
rm
mailcap.py
7437
0644
edit
dl
rm
mimetypes.py
20781
0644
edit
dl
rm
modulefinder.py
23421
0644
edit
dl
rm
netrc.py
5748
0644
edit
dl
rm
nntplib.py
43082
0644
edit
dl
rm
ntpath.py
20477
0644
edit
dl
rm
nturl2path.py
2444
0644
edit
dl
rm
numbers.py
10243
0644
edit
dl
rm
opcode.py
5442
0644
edit
dl
rm
operator.py
9195
0644
edit
dl
rm
optparse.py
60346
0644
edit
dl
rm
os.py
33882
0644
edit
dl
rm
pathlib.py
42467
0644
edit
dl
rm
pdb.py
60992
0755
edit
dl
rm
pickle.py
55989
0644
edit
dl
rm
pickletools.py
91762
0644
edit
dl
rm
pipes.py
8916
0644
edit
dl
rm
pkgutil.py
21215
0644
edit
dl
rm
platform.py
46761
0755
edit
dl
rm
plistlib.py
31791
0644
edit
dl
rm
poplib.py
14319
0644
edit
dl
rm
posixpath.py
13448
0644
edit
dl
rm
pprint.py
14919
0644
edit
dl
rm
profile.py
22032
0755
edit
dl
rm
pstats.py
26316
0644
edit
dl
rm
pty.py
4763
0644
edit
dl
rm
pyclbr.py
13520
0644
edit
dl
rm
pydoc.py
103011
0755
edit
dl
rm
py_compile.py
7103
0644
edit
dl
rm
queue.py
8835
0644
edit
dl
rm
quopri.py
7265
0755
edit
dl
rm
random.py
26084
0644
edit
dl
rm
re.py
15604
0644
edit
dl
rm
reprlib.py
5110
0644
edit
dl
rm
rlcompleter.py
6069
0644
edit
dl
rm
runpy.py
10816
0644
edit
dl
rm
sched.py
6354
0644
edit
dl
rm
selectors.py
17097
0644
edit
dl
rm
shelve.py
8528
0644
edit
dl
rm
shlex.py
11548
0644
edit
dl
rm
shutil.py
39902
0644
edit
dl
rm
site.py
21553
0644
edit
dl
rm
smtpd.py
29991
0755
edit
dl
rm
smtplib.py
38971
0755
edit
dl
rm
sndhdr.py
6256
0644
edit
dl
rm
socket.py
19067
0644
edit
dl
rm
socketserver.py
24372
0644
edit
dl
rm
sre_compile.py
19903
0644
edit
dl
rm
sre_constants.py
7267
0644
edit
dl
rm
sre_parse.py
31429
0644
edit
dl
rm
ssl.py
34747
0644
edit
dl
rm
stat.py
4400
0644
edit
dl
rm
statistics.py
19556
0644
edit
dl
rm
string.py
11445
0644
edit
dl
rm
stringprep.py
12917
0644
edit
dl
rm
struct.py
257
0644
edit
dl
rm
subprocess.py
64549
0644
edit
dl
rm
sunau.py
18095
0644
edit
dl
rm
symbol.py
2053
0755
edit
dl
rm
symtable.py
7404
0644
edit
dl
rm
sysconfig.py
24632
0644
edit
dl
rm
tabnanny.py
11410
0755
edit
dl
rm
tarfile.py
91557
0755
edit
dl
rm
telnetlib.py
23074
0644
edit
dl
rm
tempfile.py
22525
0644
edit
dl
rm
textwrap.py
19282
0644
edit
dl
rm
this.py
1003
0644
edit
dl
rm
threading.py
48802
0644
edit
dl
rm
timeit.py
11972
0755
edit
dl
rm
token.py
3034
0644
edit
dl
rm
tokenize.py
25596
0644
edit
dl
rm
trace.py
31487
0755
edit
dl
rm
traceback.py
11167
0644
edit
dl
rm
tracemalloc.py
15651
0644
edit
dl
rm
tty.py
879
0644
edit
dl
rm
types.py
5411
0644
edit
dl
rm
uu.py
6766
0755
edit
dl
rm
uuid.py
23724
0644
edit
dl
rm
warnings.py
14303
0644
edit
dl
rm
wave.py
17682
0644
edit
dl
rm
weakref.py
19384
0644
edit
dl
rm
webbrowser.py
21432
0755
edit
dl
rm
xdrlib.py
5913
0644
edit
dl
rm
zipfile.py
68547
0644
edit
dl
rm
_bootlocale.py
1301
0644
edit
dl
rm
_collections_abc.py
19898
0644
edit
dl
rm
_compat_pickle.py
8318
0644
edit
dl
rm
_dummy_thread.py
4872
0644
edit
dl
rm
_markupbase.py
14598
0644
edit
dl
rm
_osx_support.py
19101
0644
edit
dl
rm
_pyio.py
73893
0644
edit
dl
rm
_sitebuiltins.py
3115
0644
edit
dl
rm
_strptime.py
22053
0644
edit
dl
rm
_sysconfigdata.py
24480
0644
edit
dl
rm
_threading_local.py
7410
0644
edit
dl
rm
_weakrefset.py
5705
0644
edit
dl
rm
__future__.py
4584
0644
edit
dl
rm
__phello__.foo.py
64
0644
edit
dl
rm
Edit:
/opt/alt/python34/lib64/python3.4/site.py
(21553B)
"""Append module search paths for third-party packages to sys.path. **************************************************************** * This module is automatically imported during initialization. * **************************************************************** This will append site-specific paths to the module search path. On Unix (including Mac OSX), it starts with sys.prefix and sys.exec_prefix (if different) and appends lib/python<version>/site-packages as well as lib/site-python. On other platforms (such as Windows), it tries each of the prefixes directly, as well as with lib/site-packages appended. The resulting directories, if they exist, are appended to sys.path, and also inspected for path configuration files. If a file named "pyvenv.cfg" exists one directory above sys.executable, sys.prefix and sys.exec_prefix are set to that directory and it is also checked for site-packages and site-python (sys.base_prefix and sys.base_exec_prefix will always be the "real" prefixes of the Python installation). If "pyvenv.cfg" (a bootstrap configuration file) contains the key "include-system-site-packages" set to anything other than "false" (case-insensitive), the system-level prefixes will still also be searched for site-packages; otherwise they won't. All of the resulting site-specific directories, if they exist, are appended to sys.path, and also inspected for path configuration files. A path configuration file is a file whose name has the form <package>.pth; its contents are additional directories (one per line) to be added to sys.path. Non-existing directories (or non-directories) are never added to sys.path; no directory is added to sys.path more than once. Blank lines and lines beginning with '#' are skipped. Lines starting with 'import' are executed. For example, suppose sys.prefix and sys.exec_prefix are set to /usr/local and there is a directory /usr/local/lib/python2.5/site-packages with three subdirectories, foo, bar and spam, and two path configuration files, foo.pth and bar.pth. Assume foo.pth contains the following: # foo package configuration foo bar bletch and bar.pth contains: # bar package configuration bar Then the following directories are added to sys.path, in this order: /usr/local/lib/python2.5/site-packages/bar /usr/local/lib/python2.5/site-packages/foo Note that bletch is omitted because it doesn't exist; bar precedes foo because bar.pth comes alphabetically before foo.pth; and spam is omitted because it is not mentioned in either path configuration file. The readline module is also automatically configured to enable completion for systems that support it. This can be overriden in sitecustomize, usercustomize or PYTHONSTARTUP. After these operations, an attempt is made to import a module named sitecustomize, which can perform arbitrary additional site-specific customizations. If this import fails with an ImportError exception, it is silently ignored. """ import sys import os import builtins import _sitebuiltins # Prefixes for site-packages; add additional prefixes like /usr/local here PREFIXES = [sys.prefix, sys.exec_prefix] # Enable per user site-packages directory # set it to False to disable the feature or True to force the feature ENABLE_USER_SITE = None # for distutils.commands.install # These values are initialized by the getuserbase() and getusersitepackages() # functions, through the main() function when Python starts. USER_SITE = None USER_BASE = None def makepath(*paths): dir = os.path.join(*paths) try: dir = os.path.abspath(dir) except OSError: pass return dir, os.path.normcase(dir) def abs_paths(): """Set all module __file__ and __cached__ attributes to an absolute path""" for m in set(sys.modules.values()): if (getattr(getattr(m, '__loader__', None), '__module__', None) != '_frozen_importlib'): continue # don't mess with a PEP 302-supplied __file__ try: m.__file__ = os.path.abspath(m.__file__) except (AttributeError, OSError): pass try: m.__cached__ = os.path.abspath(m.__cached__) except (AttributeError, OSError): pass def removeduppaths(): """ Remove duplicate entries from sys.path along with making them absolute""" # This ensures that the initial path provided by the interpreter contains # only absolute pathnames, even if we're running from the build directory. L = [] known_paths = set() for dir in sys.path: # Filter out duplicate paths (on case-insensitive file systems also # if they only differ in case); turn relative paths into absolute # paths. dir, dircase = makepath(dir) if not dircase in known_paths: L.append(dir) known_paths.add(dircase) sys.path[:] = L return known_paths def _init_pathinfo(): """Return a set containing all existing directory entries from sys.path""" d = set() for dir in sys.path: try: if os.path.isdir(dir): dir, dircase = makepath(dir) d.add(dircase) except TypeError: continue return d def addpackage(sitedir, name, known_paths): """Process a .pth file within the site-packages directory: For each line in the file, either combine it with sitedir to a path and add that to known_paths, or execute it if it starts with 'import '. """ if known_paths is None: known_paths = _init_pathinfo() reset = 1 else: reset = 0 fullname = os.path.join(sitedir, name) try: f = open(fullname, "r") except OSError: return with f: for n, line in enumerate(f): if line.startswith("#"): continue try: if line.startswith(("import ", "import\t")): exec(line) continue line = line.rstrip() dir, dircase = makepath(sitedir, line) if not dircase in known_paths and os.path.exists(dir): sys.path.append(dir) known_paths.add(dircase) except Exception: print("Error processing line {:d} of {}:\n".format(n+1, fullname), file=sys.stderr) import traceback for record in traceback.format_exception(*sys.exc_info()): for line in record.splitlines(): print(' '+line, file=sys.stderr) print("\nRemainder of file ignored", file=sys.stderr) break if reset: known_paths = None return known_paths def addsitedir(sitedir, known_paths=None): """Add 'sitedir' argument to sys.path if missing and handle .pth files in 'sitedir'""" if known_paths is None: known_paths = _init_pathinfo() reset = 1 else: reset = 0 sitedir, sitedircase = makepath(sitedir) if not sitedircase in known_paths: sys.path.append(sitedir) # Add path component known_paths.add(sitedircase) try: names = os.listdir(sitedir) except OSError: return names = [name for name in names if name.endswith(".pth")] for name in sorted(names): addpackage(sitedir, name, known_paths) if reset: known_paths = None return known_paths def check_enableusersite(): """Check if user site directory is safe for inclusion The function tests for the command line flag (including environment var), process uid/gid equal to effective uid/gid. None: Disabled for security reasons False: Disabled by user (command line option) True: Safe and enabled """ if sys.flags.no_user_site: return False if hasattr(os, "getuid") and hasattr(os, "geteuid"): # check process uid == effective uid if os.geteuid() != os.getuid(): return None if hasattr(os, "getgid") and hasattr(os, "getegid"): # check process gid == effective gid if os.getegid() != os.getgid(): return None return True def getuserbase(): """Returns the `user base` directory path. The `user base` directory can be used to store data. If the global variable ``USER_BASE`` is not initialized yet, this function will also set it. """ global USER_BASE if USER_BASE is not None: return USER_BASE from sysconfig import get_config_var USER_BASE = get_config_var('userbase') return USER_BASE def getusersitepackages(): """Returns the user-specific site-packages directory path. If the global variable ``USER_SITE`` is not initialized yet, this function will also set it. """ global USER_SITE user_base = getuserbase() # this will also set USER_BASE if USER_SITE is not None: return USER_SITE from sysconfig import get_path if sys.platform == 'darwin': from sysconfig import get_config_var if get_config_var('PYTHONFRAMEWORK'): USER_SITE = get_path('purelib', 'osx_framework_user') return USER_SITE USER_SITE = get_path('purelib', '%s_user' % os.name) return USER_SITE def addusersitepackages(known_paths): """Add a per user site-package to sys.path Each user has its own python directory with site-packages in the home directory. """ # get the per user site-package path # this call will also make sure USER_BASE and USER_SITE are set user_site = getusersitepackages() if ENABLE_USER_SITE and os.path.isdir(user_site): addsitedir(user_site, known_paths) return known_paths def getsitepackages(prefixes=None): """Returns a list containing all global site-packages directories (and possibly site-python). For each directory present in ``prefixes`` (or the global ``PREFIXES``), this function will find its `site-packages` subdirectory depending on the system environment, and will return a list of full paths. """ sitepackages = [] seen = set() if prefixes is None: prefixes = PREFIXES for prefix in prefixes: if not prefix or prefix in seen: continue seen.add(prefix) if os.sep == '/': sitepackages.append(os.path.join(prefix, "lib64", "python" + sys.version[:3], "site-packages")) sitepackages.append(os.path.join(prefix, "lib", "python" + sys.version[:3], "site-packages")) sitepackages.append(os.path.join(prefix, "lib", "site-python")) else: sitepackages.append(prefix) sitepackages.append(os.path.join(prefix, "lib64", "site-packages")) sitepackages.append(os.path.join(prefix, "lib", "site-packages")) if sys.platform == "darwin": # for framework builds *only* we add the standard Apple # locations. from sysconfig import get_config_var framework = get_config_var("PYTHONFRAMEWORK") if framework: sitepackages.append( os.path.join("/Library", framework, sys.version[:3], "site-packages")) return sitepackages def addsitepackages(known_paths, prefixes=None): """Add site-packages (and possibly site-python) to sys.path""" for sitedir in getsitepackages(prefixes): if os.path.isdir(sitedir): if "site-python" in sitedir: import warnings warnings.warn('"site-python" directories will not be ' 'supported in 3.5 anymore', DeprecationWarning) addsitedir(sitedir, known_paths) return known_paths def setquit(): """Define new builtins 'quit' and 'exit'. These are objects which make the interpreter exit when called. The repr of each object contains a hint at how it works. """ if os.sep == ':': eof = 'Cmd-Q' elif os.sep == '\\': eof = 'Ctrl-Z plus Return' else: eof = 'Ctrl-D (i.e. EOF)' builtins.quit = _sitebuiltins.Quitter('quit', eof) builtins.exit = _sitebuiltins.Quitter('exit', eof) def setcopyright(): """Set 'copyright' and 'credits' in builtins""" builtins.copyright = _sitebuiltins._Printer("copyright", sys.copyright) if sys.platform[:4] == 'java': builtins.credits = _sitebuiltins._Printer( "credits", "Jython is maintained by the Jython developers (www.jython.org).") else: builtins.credits = _sitebuiltins._Printer("credits", """\ Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands for supporting Python development. See www.python.org for more information.""") files, dirs = [], [] # Not all modules are required to have a __file__ attribute. See # PEP 420 for more details. if hasattr(os, '__file__'): here = os.path.dirname(os.__file__) files.extend(["LICENSE.txt", "LICENSE"]) dirs.extend([os.path.join(here, os.pardir), here, os.curdir]) builtins.license = _sitebuiltins._Printer( "license", "See https://www.python.org/psf/license/", files, dirs) def sethelper(): builtins.help = _sitebuiltins._Helper() def enablerlcompleter(): """Enable default readline configuration on interactive prompts, by registering a sys.__interactivehook__. If the readline module can be imported, the hook will set the Tab key as completion key and register ~/.python_history as history file. This can be overriden in the sitecustomize or usercustomize module, or in a PYTHONSTARTUP file. """ def register_readline(): import atexit try: import readline import rlcompleter except ImportError: return # Reading the initialization (config) file may not be enough to set a # completion key, so we set one first and then read the file. readline_doc = getattr(readline, '__doc__', '') if readline_doc is not None and 'libedit' in readline_doc: readline.parse_and_bind('bind ^I rl_complete') else: readline.parse_and_bind('tab: complete') try: readline.read_init_file() except OSError: # An OSError here could have many causes, but the most likely one # is that there's no .inputrc file (or .editrc file in the case of # Mac OS X + libedit) in the expected location. In that case, we # want to ignore the exception. pass if readline.get_current_history_length() == 0: # If no history was loaded, default to .python_history. # The guard is necessary to avoid doubling history size at # each interpreter exit when readline was already configured # through a PYTHONSTARTUP hook, see: # http://bugs.python.org/issue5845#msg198636 history = os.path.join(os.path.expanduser('~'), '.python_history') try: readline.read_history_file(history) except IOError: pass atexit.register(readline.write_history_file, history) sys.__interactivehook__ = register_readline def aliasmbcs(): """On Windows, some default encodings are not provided by Python, while they are always available as "mbcs" in each locale. Make them usable by aliasing to "mbcs" in such a case.""" if sys.platform == 'win32': import _bootlocale, codecs enc = _bootlocale.getpreferredencoding(False) if enc.startswith('cp'): # "cp***" ? try: codecs.lookup(enc) except LookupError: import encodings encodings._cache[enc] = encodings._unknown encodings.aliases.aliases[enc] = 'mbcs' CONFIG_LINE = r'^(?P<key>(\w|[-_])+)\s*=\s*(?P<value>.*)\s*$' def venv(known_paths): global PREFIXES, ENABLE_USER_SITE env = os.environ if sys.platform == 'darwin' and '__PYVENV_LAUNCHER__' in env: executable = os.environ['__PYVENV_LAUNCHER__'] else: executable = sys.executable exe_dir, _ = os.path.split(os.path.abspath(executable)) site_prefix = os.path.dirname(exe_dir) sys._home = None conf_basename = 'pyvenv.cfg' candidate_confs = [ conffile for conffile in ( os.path.join(exe_dir, conf_basename), os.path.join(site_prefix, conf_basename) ) if os.path.isfile(conffile) ] if candidate_confs: import re config_line = re.compile(CONFIG_LINE) virtual_conf = candidate_confs[0] system_site = "true" # Issue 25185: Use UTF-8, as that's what the venv module uses when # writing the file. with open(virtual_conf, encoding='utf-8') as f: for line in f: line = line.strip() m = config_line.match(line) if m: d = m.groupdict() key, value = d['key'].lower(), d['value'] if key == 'include-system-site-packages': system_site = value.lower() elif key == 'home': sys._home = value sys.prefix = sys.exec_prefix = site_prefix # Doing this here ensures venv takes precedence over user-site addsitepackages(known_paths, [sys.prefix]) # addsitepackages will process site_prefix again if its in PREFIXES, # but that's ok; known_paths will prevent anything being added twice if system_site == "true": PREFIXES.insert(0, sys.prefix) else: PREFIXES = [sys.prefix] ENABLE_USER_SITE = False return known_paths def execsitecustomize(): """Run custom site specific code, if available.""" try: import sitecustomize except ImportError: pass except Exception as err: if os.environ.get("PYTHONVERBOSE"): sys.excepthook(*sys.exc_info()) else: sys.stderr.write( "Error in sitecustomize; set PYTHONVERBOSE for traceback:\n" "%s: %s\n" % (err.__class__.__name__, err)) def execusercustomize(): """Run custom user specific code, if available.""" try: import usercustomize except ImportError: pass except Exception as err: if os.environ.get("PYTHONVERBOSE"): sys.excepthook(*sys.exc_info()) else: sys.stderr.write( "Error in usercustomize; set PYTHONVERBOSE for traceback:\n" "%s: %s\n" % (err.__class__.__name__, err)) def main(): """Add standard site-specific directories to the module search path. This function is called automatically when this module is imported, unless the python interpreter was started with the -S flag. """ global ENABLE_USER_SITE abs_paths() known_paths = removeduppaths() known_paths = venv(known_paths) if ENABLE_USER_SITE is None: ENABLE_USER_SITE = check_enableusersite() known_paths = addusersitepackages(known_paths) known_paths = addsitepackages(known_paths) setquit() setcopyright() sethelper() enablerlcompleter() aliasmbcs() execsitecustomize() if ENABLE_USER_SITE: execusercustomize() # Prevent edition of sys.path when python was started with -S and # site is imported later. if not sys.flags.no_site: main() def _script(): help = """\ %s [--user-base] [--user-site] Without arguments print some useful information With arguments print the value of USER_BASE and/or USER_SITE separated by '%s'. Exit codes with --user-base or --user-site: 0 - user site directory is enabled 1 - user site directory is disabled by user 2 - uses site directory is disabled by super user or for security reasons >2 - unknown error """ args = sys.argv[1:] if not args: user_base = getuserbase() user_site = getusersitepackages() print("sys.path = [") for dir in sys.path: print(" %r," % (dir,)) print("]") print("USER_BASE: %r (%s)" % (user_base, "exists" if os.path.isdir(user_base) else "doesn't exist")) print("USER_SITE: %r (%s)" % (user_site, "exists" if os.path.isdir(user_site) else "doesn't exist")) print("ENABLE_USER_SITE: %r" % ENABLE_USER_SITE) sys.exit(0) buffer = [] if '--user-base' in args: buffer.append(USER_BASE) if '--user-site' in args: buffer.append(USER_SITE) if buffer: print(os.pathsep.join(buffer)) if ENABLE_USER_SITE: sys.exit(0) elif ENABLE_USER_SITE is False: sys.exit(1) elif ENABLE_USER_SITE is None: sys.exit(2) else: sys.exit(3) else: import textwrap print(textwrap.dedent(help % (sys.argv[0], os.pathsep))) sys.exit(10) if __name__ == '__main__': _script()
Save
cmd:
run