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