– 提供对Python配置信息的访问 – Python运行时服务(Python教程)(参考资料)
sysconfig
– 提供对Python配置信息的访问
版本3.2.
新增源代码: Lib / sysconfig.py
sysconfig
module提供对Python配置信息的访问,如安装路径列表和当前平台相关的配置变量.
配置变量
Python发行版包含Makefile
和pyconfig.h
构建Python二进制文件所必需的头文件和使用distutils
.
sysconfig
编译的第三方C扩展将这些文件中找到的所有变量放在可以使用get_config_vars()
访问的字典中或get_config_var()
.
请注意,在Windows上,它是一个小得多的设置.
sysconfig.
get_config_vars
(*args)-
没有参数,返回所有配置变量的字典当前平台.
使用参数,返回在配置变量字典中查找eachargument所产生的值列表.
对于每个参数,如果找不到该值,则返回
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_path
(name[, 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_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()
.