訪問 Python 的配置資訊


可以透過 sysconfig 模組訪問 Python 安裝的配置資訊。例如,安裝路徑列表和特定於安裝平臺的配置變數。

sysconfig 模組提供以下函式來訪問配置變數

sysconfig.get_config_vars()

不帶引數時,此函式返回與當前平臺相關的全部配置變數的字典。

>>> import sysconfig
>>> sysconfig.get_config_vars()
{'prefix': 'E:\python37', 'exec_prefix': 'E:\python37', 'py_version': '3.7.2', 'py_version_short':
'3.7', 'py_version_nodot': '37', 'installed_base': 'E:\python37', 'base': 'E:\python37',
'installed_platbase': 'E:\python37', 'platbase': 'E:\python37', 'projectbase': 'E:\python37',
'abiflags': '', 'LIBDEST': 'E:\python37\Lib', 'BINLIBDEST': 'E:\python37\Lib', 'INCLUDEPY':
'E:\python37\Include', 'EXT_SUFFIX': '.pyd', 'EXE': '.exe', 'VERSION': '37', 'BINDIR':
'E:\python37', 'SO': '.pyd', 'userbase': 'C:\Users\acer\AppData\Roaming\Python', 'srcdir':
'E:\python37'}

帶引數時,返回特定鍵的值列表。對於每個引數,如果未找到值,則返回 None。

>>> sysconfig.get_config_vars('base','EXE')
['E:\python37', '.exe']

sysconfig.get_config_var()

此函式返回單個變數名稱的值。這等效於 get_config_vars().get(name)。如果未找到 name,則函式返回 None。

>>> sysconfig.get_config_var('VERSION')
'37'
>>> sysconfig.get_config_var('srcdir')
'E:\python37'

Python 使用的安裝方案根據平臺和安裝選項的不同而有所不同。目前支援以下方案

posix_prefix適用於 Linux 或 Mac OS X 等 Posix 平臺的方案。
posix_home安裝時使用 home 選項時,用於 Posix 平臺的方案。
posix_user透過 Distutils 安裝元件並使用 user 選項時,用於 Posix 平臺的方案。
nt適用於 Windows 等 NT 平臺的方案。
nt_user使用 user 選項時,用於 NT 平臺的方案

get_path_names()

此函式返回一個元組,其中包含 sysconfig 中當前支援的所有路徑名稱。

>>> sysconfig.get_path_names()
('stdlib', 'platstdlib', 'purelib', 'platlib', 'include', 'scripts', 'data')

每個方案都由具有唯一識別符號的各種路徑組成。路徑名稱如下所示

stdlib包含不特定於平臺的標準 Python 庫檔案的目錄。
platstdlib包含特定於平臺的標準 Python 庫檔案的目錄。
platlib特定於站點的、特定於平臺的檔案的目錄。
purelib特定於站點的、非特定於平臺的檔案的目錄。
include非特定於平臺的標頭檔案的目錄。
platinclude特定於平臺的標頭檔案的目錄。
scripts指令碼檔案的目錄。
data資料檔案的目錄。

get_path()

此函式返回對應於路徑名稱的安裝路徑,來自名為 scheme 的安裝方案。

>>> sysconfig.get_path('include')
'E:\python37\Include'


>>> sysconfig.get_platform()
'win-amd64'

get_python_version()

此函式返回作為字串的 MAJOR.MINOR Python 版本號。

get_platform()

此函式返回一個字串,該字串標識當前平臺。

還可以使用 sysconfig 模組和 –m 選項訪問配置變數及其值。

E:\python37>python -m sysconfig
Platform: "win-amd64"
Python version: "3.7"
Current installation scheme: "nt"
Paths:
   data = "E:\python37"
   include = "E:\python37\Include"
   platinclude = "E:\python37\Include"
   platlib = "E:\python37\Lib\site-packages"
   platstdlib = "E:\python37\Lib"
   purelib = "E:\python37\Lib\site-packages"
   scripts = "E:\python37\Scripts"
   stdlib = "E:\python37\Lib"
Variables:
   BINDIR = "E:\python37"
   BINLIBDEST = "E:\python37\Lib"
   EXE = ".exe"
   EXT_SUFFIX = ".pyd"
   INCLUDEPY = "E:\python37\Include"
   LIBDEST = "E:\python37\Lib"
   SO = ".pyd"
   VERSION = "37"
   abiflags = ""
   base = "E:\python37"
   exec_prefix = "E:\python37"
   installed_base = "E:\python37"
   installed_platbase = "E:\python37"
   platbase = "E:\python37"
   prefix = "E:\python37"
   projectbase = "E:\python37"
   py_version = "3.7.2"
   py_version_nodot = "37"
   py_version_short = "3.7"
   srcdir = "E:\python37"
   userbase = "C:\Users\acer\AppData\Roaming\Python"

更新於: 2020-06-30

468 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告