Computer >> Máy Tính >  >> Lập trình >> Python

Truy cập vào thông tin cấu hình của Python

Thông tin cấu hình của cài đặt Python có thể được truy cập bởi mô-đun sysconfig. Ví dụ:danh sách các đường dẫn cài đặt và các biến cấu hình cụ thể cho nền tảng cài đặt.

Mô-đun sysconfig cung cấp các chức năng sau để truy cập các biến cấu hình

sysconfig.get_config_vars ()

Không có đối số, hàm này trả về một từ điển của tất cả các biến cấu hình có liên quan đến nền tảng hiện tại.

>>> 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'}

Với các đối số, trả về danh sách các giá trị cho các khóa cụ thể. Đối với mỗi đối số, nếu giá trị không được tìm thấy, hãy trả về Không.

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

sysconfig.get_config_var ()

Hàm này trả về giá trị của một tên biến duy nhất. Điều này tương đương với get_config_vars (). Get (name). Nếu không tìm thấy tên, hàm trả về Không có.

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

Python sử dụng một sơ đồ cài đặt khác nhau tùy thuộc vào nền tảng và tùy chọn cài đặt. Các lược đồ sau hiện đang được hỗ trợ:

lược đồ Lược đồ Lược đồ lược đồ Lược đồ
posix_prefix cho các nền tảng Posix như Linux hoặc Mac OS X.
posix_home cho nền Posix được sử dụng khi tùy chọn nhà được sử dụng khi cài đặt.
posix_user dành cho nền tảng Posix được sử dụng khi một thành phần được cài đặt thông qua Distutils và tùy chọn người dùng được sử dụng.
nt cho các nền tảng NT như Windows.
nt_user cho nền tảng NT, khi tùy chọn người dùng được sử dụng

get_path_names ()

Hàm này trả về một bộ chứa tất cả các tên đường dẫn hiện được hỗ trợ trong sysconfig.

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

Mỗi lược đồ bao gồm một đường dẫn khác nhau có mã định danh duy nhất. Tên đường dẫn như sau:

Thư mục thư mục thư mục thư mục thư mục
stdlib thư mục chứa các tệp thư viện Python chuẩn không dành riêng cho nền tảng.
platstdlib chứa các tệp thư viện Python chuẩn dành riêng cho nền tảng.
platlib cho các tệp nền tảng, cụ thể cho từng trang web.
tinh khiết dành cho các tệp dành riêng cho trang web, không dành riêng cho nền tảng.
bao gồm cho các tệp tiêu đề không dành riêng cho nền tảng.
platinclude dành cho các tệp tiêu đề dành riêng cho nền tảng.
tập lệnh thư mục cho các tệp script.
dữ liệu thư mục cho các tệp dữ liệu.

get_path ()

Hàm này trả về đường dẫn cài đặt tương ứng với tên đường dẫn, từ lược đồ cài đặt có tên là lược đồ.

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


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

get_python_version ()

Hàm này trả về số phiên bản Python MAJOR.MINOR dưới dạng một chuỗi.

get_platform ()

Hàm này trả về một chuỗi xác định nền tảng hiện tại.

Các biến cấu hình và giá trị của chúng cũng có thể được truy cập bằng mô-đun sysconfig với tùy chọn –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"