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) หากไม่พบชื่อ ฟังก์ชันจะคืนค่า 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 ที่ใช้เมื่อใช้ตัวเลือกหลักในการติดตั้ง
posix_user แบบแผนสำหรับแพลตฟอร์ม Posix ที่ใช้เมื่อส่วนประกอบถูกติดตั้งผ่าน Distutils และใช้ตัวเลือกผู้ใช้
ไม่ แผนงานสำหรับแพลตฟอร์ม NT เช่น Windows
nt_user แผนงานสำหรับแพลตฟอร์ม NT เมื่อใช้ตัวเลือกผู้ใช้

get_path_names()

ฟังก์ชันนี้ส่งคืนทูเพิลที่มีชื่อพาธทั้งหมดที่รองรับใน sysconfig ในปัจจุบัน

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

แต่ละแบบแผนประกอบด้วยเส้นทางต่างๆ ที่มีตัวระบุที่ไม่ซ้ำกัน ชื่อเส้นทางมีดังนี้:

stdlib ไดเร็กทอรีที่มีไฟล์ไลบรารี Python มาตรฐานซึ่งไม่ใช่เฉพาะแพลตฟอร์ม
platstdlib ไดเร็กทอรีที่มีไฟล์ไลบรารี Python มาตรฐานเฉพาะแพลตฟอร์ม
platlib ไดเร็กทอรีสำหรับไฟล์เฉพาะไซต์ เฉพาะแพลตฟอร์ม
เพียวลิบ ไดเร็กทอรีสำหรับไฟล์เฉพาะไซต์และไม่เจาะจงแพลตฟอร์ม
รวม ไดเร็กทอรีสำหรับไฟล์ส่วนหัวที่ไม่เฉพาะเจาะจงของแพลตฟอร์ม
แพลตตินั่ม ไดเร็กทอรีสำหรับไฟล์ส่วนหัวเฉพาะแพลตฟอร์ม
สคริปต์ ไดเร็กทอรีสำหรับไฟล์สคริปต์
ข้อมูล ไดเร็กทอรีสำหรับไฟล์ข้อมูล

get_path()

ฟังก์ชันนี้ส่งคืนพาธการติดตั้งที่สอดคล้องกับชื่อพาธ จากรูปแบบการติดตั้งที่ชื่อโครงร่าง

>>> 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"