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
(где X.Y обозначает версию 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
из операции бутстраппинга.Вызывает auditing event
ensurepip.bootstrap
с аргументомroot
.Примечание
Процесс загрузки имеет побочные эффекты как для
sys.path
, так и дляos.environ
. Вызов интерфейса командной строки в подпроцессе позволяет избежать этих побочных эффектов.Примечание
Процесс начальной загрузки может установить дополнительные модули, необходимые для
pip
, но другие программы не должны предполагать, что эти зависимости всегда будут присутствовать по умолчанию (поскольку зависимости могут быть удалены в будущей версииpip
).