Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การเข้าถึงข้อมูลการกำหนดค่าของ Python

ข้อมูลการกำหนดค่าของการติดตั้ง Python สามารถเข้าถึงได้ผ่านโมดูล sysconfig เช่น รายการเส้นทางการติดตั้งและตัวแปรการกำหนดค่าเฉพาะแพลตฟอร์มการติดตั้ง

โมดูล 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โครงร่างสำหรับแพลตฟอร์ม POSIX เช่น Linux หรือ Mac OS X
posix_homeโครงร่างสำหรับแพลตฟอร์ม POSIX เมื่อใช้ตัวเลือก home ตอนติดตั้ง
posix_userโครงร่างสำหรับแพลตฟอร์ม POSIX เมื่อติดตั้งส่วนผ่าน Distutils และใช้ตัวเลือก user
ntโครงร่างสำหรับแพลตฟอร์ม NT เช่น Windows
nt_userโครงร่างสำหรับแพลตฟอร์ม NT เมื่อใช้ตัวเลือก user

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()

ฟังก์ชันนี้คืนค่าหมายเลขเวอร์ชัน Python MAJOR.MINOR เป็นสตริง

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"