sysconfig
— Provide access to Python’s configuration information¶
Нове в версії 3.2.
Source code: Lib/sysconfig.py
Модуль sysconfig
надає доступ до конфігураційної інформації Python, наприклад до списку шляхів інсталяції та змінних конфігурації, що стосуються поточної платформи.
Конфігураційні змінні¶
A Python distribution contains a Makefile
and a pyconfig.h
header file that are necessary to build both the Python binary itself and
third-party C extensions compiled using distutils
.
sysconfig
поміщає всі змінні, знайдені в цих файлах, у словник, до якого можна отримати доступ за допомогою get_config_vars()
або get_config_var()
.
Зверніть увагу, що в Windows це набагато менший набір.
-
sysconfig.
get_config_vars
(*args)¶ Без аргументів повертає словник усіх змінних конфігурації, що стосуються поточної платформи.
За допомогою аргументів повертає список значень, які є результатом пошуку кожного аргументу в словнику змінних конфігурації.
Для кожного аргументу, якщо значення не знайдено, поверніть
None
.
-
sysconfig.
get_config_var
(name)¶ Повертає значення однієї змінної name. Еквівалент
get_config_vars().get(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++']
Шляхи встановлення¶
Python uses an installation scheme that differs depending on the platform and on
the installation options. These schemes are stored in sysconfig
under
unique identifiers based on the value returned by os.name
.
Every new component that is installed using distutils
or a
Distutils-based system will follow the same scheme to copy its file in the right
places.
Python currently supports six schemes:
posix_prefix: схема для платформ POSIX, таких як Linux або macOS. Це типова схема, яка використовується, коли встановлено Python або компонент.
posix_home: scheme for POSIX platforms used when a home option is used upon installation. This scheme is used when a component is installed through Distutils with a specific home prefix.
posix_user: scheme for POSIX platforms used when a component is installed through Distutils and the user option is used. This scheme defines paths located under the user home directory.
nt: scheme for NT platforms like Windows.
nt_user: scheme for NT platforms, when the user option is used.
osx_framework_user: схема для macOS, коли використовується параметр user.
Кожна схема сама по собі складається з серії шляхів, і кожен шлях має унікальний ідентифікатор. Зараз Python використовує вісім шляхів:
stdlib: каталог, що містить файли стандартної бібліотеки Python, які не залежать від платформи.
platstdlib: каталог, що містить файли стандартної бібліотеки Python, які залежать від платформи.
platlib: каталог для файлів, що стосуються сайту та платформи.
purelib: directory for site-specific, non-platform-specific files.
include: directory for non-platform-specific header files.
platinclude: directory for platform-specific header files.
scripts: каталог для файлів сценаріїв.
data: каталог для файлів даних.
sysconfig
provides some functions to determine these paths.
-
sysconfig.
get_scheme_names
()¶ Повертає кортеж, що містить усі схеми, які наразі підтримуються в
sysconfig
.
-
sysconfig.
get_path_names
()¶ Повертає кортеж, що містить усі назви шляхів, які зараз підтримуються в
sysconfig
.
-
sysconfig.
get_path
(name[, scheme[, vars[, expand]]])¶ Повертає шлях встановлення, що відповідає шляху ім’я зі схеми встановлення під назвою схема.
name має бути значенням зі списку, який повертає
get_path_names()
.sysconfig
зберігає шляхи встановлення, що відповідають кожному імені шляху, для кожної платформи, зі змінними, які можна розширити. Наприклад, шлях stdlib для схеми nt такий:{base}/Lib
.get_path()
використовуватиме змінні, які повертаєget_config_vars()
, щоб розширити шлях. Усі змінні мають значення за замовчуванням для кожної платформи, тому можна викликати цю функцію та отримати значення за замовчуванням.Якщо вказано схему, це має бути значення зі списку, який повертає
get_scheme_names()
. В іншому випадку використовується схема за замовчуванням для поточної платформи.If vars is provided, it must be a dictionary of variables that will update the dictionary return by
get_config_vars()
.Якщо expand має значення
False
, шлях не буде розгортатися за допомогою змінних.Якщо name не знайдено, викликайте
KeyError
.
-
sysconfig.
get_paths
([scheme[, vars[, expand]]])¶ Повертає словник, що містить усі шляхи встановлення, що відповідають схемі встановлення. Дивіться
get_path()
для отримання додаткової інформації.Якщо схема не вказана, використовуватиметься схема за замовчуванням для поточної платформи.
Якщо надано vars, це має бути словник змінних, який оновлюватиме словник, що використовується для розширення шляхів.
Якщо expand має значення false, шляхи не розгортатимуться.
Якщо scheme не є існуючою схемою,
get_paths()
викличеKeyError
.
Інші функції¶
-
sysconfig.
get_python_version
()¶ Повертає
MAJOR.MINOR
номер версії Python у вигляді рядка. Подібно до'%d.%d' % sys.version_info[:2]
.
-
sysconfig.
get_platform
()¶ Повертає рядок, що ідентифікує поточну платформу.
This is used mainly to distinguish platform-specific build directories and platform-specific built distributions. Typically includes the OS name and version and the architecture (as supplied by „os.uname()“), although the exact information included depends on the OS; e.g., on Linux, the kernel version isn’t particularly important.
Приклади повернених значень:
linux-i586
linux-alpha (?)
solaris-2.6-sun4u
Windows поверне одне з:
win-amd64 (64-розрядна Windows на AMD64, також x86_64, Intel64 і EM64T)
win32 (усі інші - зокрема повертається sys.platform)
macOS може повертати:
macosx-10.6-ppc
macosx-10.4-ppc64
macosx-10.3-i386
macosx-10.4-жир
Для інших платформ, відмінних від POSIX, наразі повертає лише
sys.platform
.
-
sysconfig.
is_python_build
()¶ Повертає
True
, якщо запущений інтерпретатор Python був зібраний із вихідного коду та запускається зі свого зібраного розташування, а не з розташування, яке є результатом, наприклад, запускmake install
або встановлення через бінарний інсталятор.
-
sysconfig.
parse_config_h
(fp[, vars])¶ Проаналізуйте файл у стилі
config.h
.fp — це файлоподібний об’єкт, що вказує на
config.h
подібний файл.Повертається словник, що містить пари ім’я/значення. Якщо додатковий словник передається як другий аргумент, він використовується замість нового словника та оновлюється значеннями, зчитаними у файлі.
-
sysconfig.
get_config_h_filename
()¶ Повертає шлях до
pyconfig.h
.
-
sysconfig.
get_makefile_filename
()¶ Повертає шлях до
Makefile
.
Використання sysconfig
як сценарію¶
Ви можете використовувати sysconfig
як сценарій з опцією Python -m:
$ python -m sysconfig
Platform: "macosx-10.4-i386"
Python version: "3.2"
Current installation scheme: "posix_prefix"
Paths:
data = "/usr/local"
include = "/Users/tarek/Dev/svn.python.org/py3k/Include"
platinclude = "."
platlib = "/usr/local/lib/python3.2/site-packages"
platstdlib = "/usr/local/lib/python3.2"
purelib = "/usr/local/lib/python3.2/site-packages"
scripts = "/usr/local/bin"
stdlib = "/usr/local/lib/python3.2"
Variables:
AC_APPLE_UNIVERSAL_BUILD = "0"
AIX_GENUINE_CPLUSPLUS = "0"
AR = "ar"
ARFLAGS = "rc"
...
Цей виклик виводить у стандартний вихід інформацію, яку повертають get_platform()
, get_python_version()
, get_path()
і get_config_vars()
.