sysconfig
sysconfig - 提供对Python配置信息的访问
2.7版本的新功能。
源代码:
Lib / sysconfig.py
该sysconfig
模块提供对Python配置信息的访问,如安装路径列表和与当前平台相关的配置变量。
1.配置变量
一个Python分布包含Makefile
和pyconfig.h
头文件是必要建立于对Python二进制文件本身和第三方的C扩展使用编译distutils
。
sysconfig将在这些文件中找到的所有变量放在可以使用get_config_vars()或get_config_var()访问的字典中。
请注意,在Windows中,它是一个更小的集合。
sysconfig.get_config_vars(*args)
如果没有参数,则返回与当前平台相关的所有配置变量的字典。
使用参数,返回查找配置变量字典中每个参数所得到的值列表。
对于每个参数,如果未找到该值,则返回None
。
sysconfig.get_config_var(name)
返回单个变量名称
的值。相当于get_config_vars().get(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++']
2.安装路径
Python使用的安装方案因平台和安装选项而异。 这些方案根据os.name返回的值以唯一标识符存储在sysconfig中。
使用distutils
或基于Distutils的系统安装的每个新组件都将遵循相同的方案在正确的位置复制其文件。
Python目前支持七种方案:
posix_prefix
:适用于Linux或Mac OS X等Posix平台的方案。这是安装Python或组件时使用的默认方案。
posix_home
:在安装时使用家庭
选项时使用的POSIX平台的方案。当通过具有特定归属前缀的Distutils安装组件时使用此方案。
posix_user
:用于通过Distutils安装组件并使用用户
选项时使用的Posix平台的方案。该方案定义位于用户
主目录下的路径。
nt
:适用于Windows平台的NT平台。
nt_user
:使用用户
选项时NT平台的方案。
os2
:OS / 2平台的方案。
- 当使用
用户
选项时,os2_home
:OS / 2 patforms的方案。
每个方案本身都由一系列路径组成,每条路径都有一个唯一的标识符。Python目前使用八条路径:
stdlib
:包含非特定于平台的标准Python库文件的目录。
platstdlib
:包含特定于平台的标准Python库文件的目录。
platlib
:特定于站点的平台特定文件的目录。
purelib
:特定于站点的非平台特定文件的目录。
include
:非平台特定头文件的目录。
platinclude
:平台特定的头文件的目录。
scripts
:脚本文件的目录。
data
:数据文件的目录。
sysconfig
提供了一些功能来确定这些路径。
sysconfig.get_scheme_names()
返回包含sysconfig中当前支持的所有方案的元组。
sysconfig.get_path_names()
返回包含sysconfig中当前支持的所有路径名的元组。
sysconfig.get_path(name[, scheme[, vars[, expand]]])
从名
为scheme
的安装方案中返回与路径名
相对应的安装路径。
name必须是get_path_names()返回的列表中的值。
sysconfig
为每个平台存储与每个路径名相对应的安装路径,其中要展开的变量。例如,nt
方案的stdlib
路径是:{base}/Lib
get_path()
将使用返回的变量get_config_vars()
来扩展路径。所有变量都具有每个平台的默认值,因此可以调用此函数并获取默认值。
如果提供方案,它必须是get_scheme_names()返回的列表中的值。 否则,将使用当前平台的默认方案。
如果提供了vars,它必须是一个将通过get_config_vars()更新字典返回值的变量字典。
如果expand设置为False,则路径将不会使用变量进行扩展。
如果找不到名字
,请返回None
。
sysconfig.get_paths([scheme[, vars[, expand]]])
返回包含与安装方案对应的所有安装路径的字典。查看get_path()
更多信息。
如果方案
没有提供,将使用当前平台的默认方案
。
如果提供了变量,它必须是一个变量字典,它将更新用于扩展路径的字典。
如果expand
设置为false,则路径将不会展开。
如果方案
不是现有的方案
,get_paths()
将提出一个KeyError
。
3.其他功能
sysconfig.get_python_version()
MAJOR.MINOR
以字符串形式返回Python版本号。类似于sys.version[:3]
。
sysconfig.get_platform()
返回一个标识当前平台的字符串。
这主要用于区分平台特定的构建目录和平台特定的构建分布。通常包括操作系统名称和版本以及体系结构(由提供os.uname()
),尽管包含的确切信息取决于操作系统; 例如对于IRIX,体系结构并不特别重要(IRIX仅在SGI硬件上运行),但对于Linux,内核版本并不特别重要。
返回值的示例:
- linux-i586
- linux-alpha (?)
- solaris-2.6-sun4u
- irix-5.3
- irix64-6.2
Windows将返回以下之一:
- win-amd64(AMD64上的64位Windows(又名x86_64,Intel64,EM64T等)
- win-ia64(Itanium上的64位Windows)
- 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()
如果当前Python安装是从源代码构建的,则返回True。
sysconfig.parse_config_h(fp[, vars])
解析一个config.h
风格的文件。
fp
是指向config.h
类文件的类文件对象。
包含名称/值对的字典被返回。如果一个可选字典作为第二个参数传入,它将被用来代替一个新的字典,并使用文件中读取的值进行更新。
sysconfig.get_config_h_filename()
返回pyconfig.h
的路径。
sysconfig.get_makefile_filename()
返回Makefile的路径。