Made sysconfig a script that displays useful information - #8770
This commit is contained in:
parent
4fb18010f5
commit
a751499363
|
@ -216,3 +216,35 @@ Other functions
|
|||
.. function:: get_config_h_filename()
|
||||
|
||||
Return the path of :file:`pyconfig.h`.
|
||||
|
||||
Using :mod:`sysconfig` as a script
|
||||
----------------------------------
|
||||
|
||||
You can use :mod:`sysconfig` as a script with Python's *-m* option::
|
||||
|
||||
$ python -m sysconfig
|
||||
Platform: "macosx-10.4-i386"
|
||||
Python version: "3.2"
|
||||
Current installation scheme: "posix_prefix"
|
||||
|
||||
Paths:
|
||||
data = "/usr/local"
|
||||
include = "/Users/tarek/Dev/svn.python.org/py3k/Include"
|
||||
platinclude = "."
|
||||
platlib = "/usr/local/lib/python3.2/site-packages"
|
||||
platstdlib = "/usr/local/lib/python3.2"
|
||||
purelib = "/usr/local/lib/python3.2/site-packages"
|
||||
scripts = "/usr/local/bin"
|
||||
stdlib = "/usr/local/lib/python3.2"
|
||||
|
||||
Variables:
|
||||
AC_APPLE_UNIVERSAL_BUILD = "0"
|
||||
AIX_GENUINE_CPLUSPLUS = "0"
|
||||
AR = "ar"
|
||||
ARFLAGS = "rc"
|
||||
ASDLGEN = "./Parser/asdl_c.py"
|
||||
...
|
||||
|
||||
This call will print in the standard output the information returned by
|
||||
:func:`get_platform`, :func:`get_python_version`, :func:`get_path` and
|
||||
:func:`get_config_vars`.
|
||||
|
|
|
@ -686,3 +686,22 @@ def get_platform():
|
|||
|
||||
def get_python_version():
|
||||
return _PY_VERSION_SHORT
|
||||
|
||||
def _print_dict(title, data):
|
||||
for index, (key, value) in enumerate(sorted(data.items())):
|
||||
if index == 0:
|
||||
print('{0}: '.format(title))
|
||||
print('\t{0} = "{1}"'.format(key, value))
|
||||
|
||||
def _main():
|
||||
"""Displays all information sysconfig detains."""
|
||||
print('Platform: "{0}"'.format(get_platform()))
|
||||
print('Python version: "{0}"'.format(get_python_version()))
|
||||
print('Current installation scheme: "{0}"'.format(_get_default_scheme()))
|
||||
print('')
|
||||
_print_dict('Paths', get_paths())
|
||||
print('')
|
||||
_print_dict('Variables', get_config_vars())
|
||||
|
||||
if __name__ == '__main__':
|
||||
_main()
|
||||
|
|
|
@ -11,13 +11,14 @@ import subprocess
|
|||
import shutil
|
||||
from copy import copy, deepcopy
|
||||
|
||||
from test.support import run_unittest, TESTFN, unlink, get_attribute
|
||||
from test.support import (run_unittest, TESTFN, unlink, get_attribute,
|
||||
captured_stdout)
|
||||
|
||||
import sysconfig
|
||||
from sysconfig import (get_paths, get_platform, get_config_vars,
|
||||
get_path, get_path_names, _INSTALL_SCHEMES,
|
||||
_get_default_scheme, _expand_vars,
|
||||
get_scheme_names, get_config_var)
|
||||
get_scheme_names, get_config_var, _main)
|
||||
|
||||
class TestSysConfig(unittest.TestCase):
|
||||
|
||||
|
@ -264,6 +265,13 @@ class TestSysConfig(unittest.TestCase):
|
|||
user_path = get_path(name, 'posix_user')
|
||||
self.assertEquals(user_path, global_path.replace(base, user))
|
||||
|
||||
def test_main(self):
|
||||
# just making sure _main() runs and returns things in the stdout
|
||||
with captured_stdout() as output:
|
||||
_main()
|
||||
self.assertTrue(len(output.getvalue().split('\n')) > 0)
|
||||
|
||||
|
||||
def test_main():
|
||||
run_unittest(TestSysConfig)
|
||||
|
||||
|
|
Loading…
Reference in New Issue