ensurepip — Начальная загрузка pip установщика

Добавлено в версии 3.4.


Пакет ensurepip обеспечивает поддержку начальной загрузки установщика pip в существующую установку Python или в виртуальную среду. Данный подход к начальной загрузке отражает тот факт, что pip — это независимый проект с собственным циклом релиза, а последняя доступная стабильная версия связана с выпусками обслуживания и функций эталонного CPython интерпретатора.

В большинстве случаев конечным пользователям Python не нужно вызывать данный модуль напрямую (поскольку pip должен быть загружен по умолчанию), но он может понадобиться, если установка pip была пропущена при установке Python (или при создании виртуальной среды) или после явное удаление pip.

Примечание

Данному модулю не нужен доступ в Интернет. Все компоненты, необходимые для начальной загрузки pip, включены как внутренние части пакета.

См.также

Установка модулей Python
Руководство конечного пользователя по установке Python пакетов.
PEP 453: явная загрузка pip в Python установках
Первоначальное обоснование и спецификация для модуля.

Интерфейс командной строки

Интерфейс командной строки вызывается с помощью переключателя интерпретатора -m.

Самый простой из возможных вызовов:

python -m ensurepip

Данный вызов установит pip, если он ещё не установлен, но в остальном ничего не делает. Чтобы убедиться, что установленная версия pip не ниже версии ensurepip, передайте параметр --upgrade:

python -m ensurepip --upgrade

По умолчанию pip устанавливается в текущую виртуальную среду (если она активна) или в пакеты сайта системы (если активной виртуальной среды нет). Местом установки можно управлять с помощью двух дополнительных параметров командной строки:

  • --root <dir>: устанавливает pip относительно заданного корневого каталога, а не корня текущей активной виртуальной среды (если есть) или корня по умолчанию для текущей установки Python.
  • --user: устанавливает pip в каталог пакетов сайта пользователя, а не глобально для текущей установки Python (данный параметр не разрешен в активной виртуальной среде).

По умолчанию будут установлены сценарии pipX и pipX.Y (где XY обозначает версию Python, используемую для вызова ensurepip). Установленными сценариями можно управлять с помощью двух дополнительных параметров командной строки:

  • --altinstall: если запрашивается альтернативная установка, не будет установлен сценарий pipX.
  • --default-pip: если запрашивается установка «pip по умолчанию», сценарий pip будет установлен в дополнение к двум обычным сценариям.

Предоставление обоих вариантов выбора сценария вызовет исключение.

API модуля

ensurepip предоставляет две функции для программного использования:

ensurepip.version()

Возвращает строку, указывающую связанную версию pip, которая будет установлена при начальной загрузке среды.

ensurepip.bootstrap(root=None, upgrade=False, user=False, altinstall=False, default_pip=False, verbosity=0)

Загружает pip в текущую или назначенную среду.

root указывает альтернативный корневой каталог для установки. Если root имеет значение None, при установке используется расположение установки по умолчанию для текущей среды.

upgrade указывает, следует ли обновлять существующую установку более ранней версии pip до связанной версии.

user указывает, следует ли использовать пользовательскую схему вместо глобальной установки.

По умолчанию будут установлены сценарии pipX и pipX.Y (где X.Y обозначает текущую версию Python).

Если установлен altinstall, то pipX не будет установлен.

Если установлен default_pip, то в дополнение к двум обычным сценариям будет установлен pip.

Установка altinstall и default_pip вызовет ValueError.

verbosity управляет уровнем вывода в sys.stdout из операции начальной загрузки.

Вызывает событие аудита ensurepip.bootstrap с аргументом root.

Примечание

Процесс начальной загрузки имеет побочные эффекты как для sys.path, так и для os.environ. Вместо этого вызов интерфейса командной строки в подпроцессе позволяет избежать данных побочных эффектов.

Примечание

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