Spec-Zone.ru › Python 2.7

sysconfig — Предоставление доступа к конфигурационной информации Python

Новое в версии 2.7.

Исходный код: Lib/sysconfig.py

Модуль sysconfig предоставляет доступ к конфигурационной информации Python, такой как список путей установки и переменные конфигурации, относящиеся к текущей платформе.

1. Переменные конфигурации

Распределение Python содержит Makefile и pyconfig.h файлы заголовков, которые необходимы для построения как самого бинарного файла Python, так и расширений сторонних разработчиков на C, скомпилированных с помощью 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).

Если 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++']

2. Пути установки

Python использует схему установки, которая отличается в зависимости от платформы и параметров установки. Эти схемы хранятся в sysconfig под уникальными идентификаторами на основе значения, возвращаемого os.name.

Каждый новый компонент, который устанавливается с помощью distutils или системы на основе Distutils, будет следовать той же схеме для копирования файла в соответствующие места.

В настоящее время Python поддерживает семь схем:

  • posix_prefix: схема для платформ Posix, таких как Linux или Mac OS X. Это схема по умолчанию, используемая при установке Python или компонента.
  • posix_home: схема для платформ Posix, используемая при использовании параметра home при установке. Эта схема используется, когда компонент устанавливается через Distutils со специфическим префиксом домашнего каталога.
  • posix_user: схема для платформ Posix, используемая, когда компонент устанавливается через Distutils и используется параметр user. Эта схема определяет пути, расположенные в домашнем каталоге пользователя.
  • nt: схема для платформ NT, таких как Windows.
  • nt_user: схема для платформ NT, когда используется параметр user.
  • os2: схема для платформ OS/2.
  • os2_home: схема для платформ OS/2, когда используется параметр user.

Каждая схема сама по себе состоит из ряда путей, и каждый путь имеет уникальный идентификатор. В настоящее время Python использует восемь путей:

  • stdlib: каталог, содержащий стандартные файлы библиотеки Python, которые не зависят от платформы.
  • platstdlib: каталог, содержащий стандартные файлы библиотеки Python, которые зависят от платформы.
  • platlib: каталог для файлов, специфичных для сайта и платформы.
  • purelib: каталог для файлов, специфичных для сайта, но не зависящих от платформы.
  • include: каталог для файлов заголовков, не зависящих от платформы.
  • platinclude: каталог для файлов заголовков, специфичных для платформы.
  • scripts: каталог для файлов сценариев.
  • data: каталог для файлов данных.

sysconfig предоставляет некоторые функции для определения этих путей.

sysconfig.get_scheme_names()

Возвращает кортеж, содержащий все схемы, которые в настоящее время поддерживаются в sysconfig.

sysconfig.get_path_names()

Возвращает кортеж, содержащий все имена путей, которые в настоящее время поддерживаются в sysconfig.

sysconfig.get_path(name[, scheme[, vars[, expand]]])

Возвращает путь установки, соответствующий имени пути name, из схемы установки scheme.

name должен быть значением из списка, возвращаемого get_path_names().

sysconfig хранит пути установки, соответствующие каждому имени пути, для каждой платформы, с переменными для расширения. Например, путь stdlib для схемы nt имеет вид: {base}/Lib.

get_path() будет использовать переменные, возвращаемые get_config_vars(), для расширения пути. Все переменные имеют значения по умолчанию для каждой платформы, поэтому можно вызвать эту функцию и получить значение по умолчанию.

Если scheme указан, он должен быть значением из списка, возвращаемого get_scheme_names(). В противном случае используется схема по умолчанию для текущей платформы.

Если vars указан, он должен быть словарем переменных, которые обновят словарь, возвращаемый get_config_vars().

Если expand установлено в False, путь не будет расширен с помощью переменных.

Если name не найден, возвращает None.

sysconfig.get_paths([scheme[, vars[, expand]]])

Возвращает словарь, содержащий все пути установки, соответствующие схеме установки. Дополнительную информацию см. в get_path().

Если scheme не указан, используется схема по умолчанию для текущей платформы.

Если vars указан, он должен быть словарем переменных, которые будут обновлять словарь, используемый для расширения путей.

Если expand установлено в false, пути не будут расширены.

Если scheme не является существующей схемой, get_paths() вызовет KeyError.

3. Другие функции

sysconfig.get_python_version()

Возвращает номер версии Python MAJOR.MINOR в виде строки. Аналогично sys.version[:3].

sysconfig.get_platform()

Возвращает строку, идентифицирующую текущую платформу.

Это используется в основном для различения каталогов построения, специфичных для платформы, и скомпилированных распределений, специфичных для платформы. Обычно включает имя и версию ОС, а также архитектуру (как предоставлено os.uname()), хотя точная информация зависит от ОС; например, для IRIX архитектура не имеет особого значения (IRIX работает только на оборудовании SGI), но для Linux версия ядра не имеет особого значения.

Примеры возвращаемых значений:

  • linux-i586
  • linux-alpha (?)
  • solaris-2.6-sun4u
  • irix-5.3
  • irix64-6.2

Windows вернет одно из:

  • win-amd64 (64-битная Windows на AMD64, также x86_64, Intel64 и EM64T)
  • win-ia64 (64-битная Windows на Itanium)
  • win32 (все остальные - в частности, возвращается sys.platform)

Mac OS X может возвратить:

  • macosx-10.6-ppc
  • macosx-10.4-ppc64
  • macosx-10.3-i386
  • macosx-10.4-fat

Для других платформ, не являющихся POSIX, в настоящее время возвращает sys.platform.

sysconfig.is_python_build()

Возвращает True, если текущая установка Python была построена из исходных кодов.

sysconfig.parse_config_h(fp[, vars])

Парсинг файла в формате config.h.

fp — это объект типа файла, указывающий на файл в формате config.h.

Возвращается словарь, содержащий пары имя/значение. Если в качестве второго аргумента передан необязательный словарь, он используется вместо нового словаря и обновляется значениями, считанными из файла.

sysconfig.get_config_h_filename()

Возвращает путь к pyconfig.h.

sysconfig.get_makefile_filename()

Возвращает путь к Makefile.

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/sysconfig.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API