sysconfig– 提供对Python配置信息的访问

版本3.2.

新增源代码: Lib / sysconfig.py


sysconfig module提供对Python配置信息的访问,如安装路径列表和当前平台相关的配置变量.

配置变量

Python发行版包含Makefilepyconfig.h构建Python二进制文件所必需的头文件和使用distutils.

sysconfig编译的第三方C扩展将这些文件中找到的所有变量放在可以使用get_config_vars()访问字典中或get_config_var().

请注意,在Windows上,它是一个小得多的设置.

sysconfig.get_config_vars (*args

没有参数,返回所有配置变量的字典当前平台.

使用参数,返回在配置变量字典中查找eachargument所产生的值列表.

对于每个参数,如果找不到该值,则返回None.

sysconfig.get_config_varname

返回单个变量name的值。相当于get_config_vars().get(name).

如果找不到name,则返回None.

使用示例:

>>> import sysconfig>>> sysconfig.get_config_var("Py_ENABLE_SHARED")0>>> sysconfig.get_config_var("LIBDIR")"/usr/local/lib">>> sysconfig.get_config_vars("AR", "CXX")["ar", "g++"]

安装路径

Python使用的安装方案根据平台和安装选项的不同而不同。根据sysconfig返回的值,这些方案存储在os.name.

underunique标识符中。使用distutils或基于aDistutils的系统安装的每个新组件都将遵循相同的方案进行复制它在rightplaces中的文件

Python目前支持七种方案:

  • posix_prefix:适用于Linux或Mac OS X等Posix平台的方案。这是安装Python或组件时使用的默认方案.
  • posix_home:当home选项是usedupon安装时使用的Posix平台的方案。当通过具有特定主前缀的驱动程序安装组件时使用此方案.
  • posix_user:通过Distutils安装组件时使用的Posix平台的方案和user使用选项。这个方案定义了位于用户主目录下的路径.
  • nt:用于NT平台的方案,如Windows.
  • nt_user:用于NT平台的方案,当使用user选项时

每个方案本身由一系列路径组成,每个路径都有一个唯一的标识符。Python目前使用八条路径:

  • stdlib:包含标准Python库文件的目录,这些文件是notplatform-specific。
  • platstdlib:包含标准Python库文件的目录,这些文件是平台特定的.
  • platlib特定于站点的特定于平台的文件的目录.
  • purelib:特定于站点的非平台特定文件的目录.
  • include:非特定于平台的头文件的目录.
  • platinclude:特定于平台的头文件的目录.
  • scripts脚本文件的目录.
  • data:数据文件的目录.

sysconfig提供了一些确定这些路径的函数.

sysconfig.get_scheme_names

返回包含sysconfig.

sysconfig.get_path_names

返回包含sysconfig.

sysconfig.get_pathname[, scheme[, vars[, expand] ] ]

返回与路径name,来自名为scheme.

name必须是get_path_names().

sysconfig存储与每个平台的每个路径名对应的安装路径,以及要扩展的变量。例如stdlib方案的nt路径是:{base}/Lib.

get_path()将使用get_config_vars()返回的变量来扩展路径。所有变量都有每个平台的默认值,因此可以调用此函数并获取默认值.

如果scheme提供,它必须是get_scheme_names()返回的列表中的值。否则,使用当前平台的默认方案.

如果vars提供,它必须是一个变量字典,将通过get_config_vars().

如果expand被设置为 False,路径不会使用变量扩展.

如果name找不到,返回None.

sysconfig.get_paths [scheme[, vars [, expand] ] ]

返回包含所有相应安装路径的字典到安装方案。请参阅get_path()了解更多信息.

如果没有提供scheme,将使用当前平台的默认方案.

如果vars提供,它必须是一个变量字典,将更新用于扩展路径的字典.

如果expand设置为false,路径将不会扩展.

如果scheme不是现有的方案,get_paths()会引发KeyError.

其他功能

sysconfig.get_python_version

MAJOR.MINOR Python版本号作为字符串返回。类似于"%d.%d" % sys.version_info[:2].

sysconfig.get_platform

返回一个标识当前平台的字符串.

这主要用于区分特定于平台的构建目录和特定于平台的构建分发。通常包括OS名称和版本以及体系结构(由’os.uname()’提供),尽管包含的确切信息取决于操作系统;例如,在Linux上,内核版本并不是特别重要.

返回值的示例:

  • linux-i586
  • linux-alpha(?)
  • solaris-2.6-sun4u

Windows将返回以下之一:

  • win-amd64(AMD64上64位Windows,又名x86_64,Intel64和EM64T)
  • win32(全部其他 – 具体来说,返回sys.platform)

Mac OS X可以返回:

  • macosx-10.6-ppc
  • macosx-10.4-ppc64
  • macosx-10.3-i386
  • macosx-10.4-fat

对于其他非POSIX平台,目前只返回sys.platform.

sysconfig.is_python_build

返回True如果正在运行的Python解释器是从源构建的,并且是从它的构建位置运行的,而不是从frome.g的位置运行的。运行make install或通过二进制安装程序安装.

sysconfig.parse_config_h (fp [, vars]

解析config.h – style file.

fp是一个类似文件的对象,指向config.h – like file.

返回包含名称/值对的字典。如果将optionaldictionary作为第二个参数传入,则使用它来代替newdictionary,并使用文件中读取的值进行更新.

sysconfig.get_config_h_filename

返回pyconfig.h.

sysconfig.get_makefile_filename)的路径

返回Makefile.

的路径使用sysconfig作为脚本

您可以使用sysconfig作为Python的脚本-m选项:

$ python -m sysconfigPlatform: "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"        ...

此调用将在标准输出中打印get_platform(), get_python_version(), get_path()get_config_vars().