W3docs

Python PIP

Узнайте, как использовать pip для установки, обновления и удаления пакетов Python, фиксации версий, экспорта зависимостей и устранения типичных ошибок.

pip — встроенный менеджер пакетов Python. Он скачивает пакеты из PyPI (индекс пакетов Python) и устанавливает их так, чтобы вы могли использовать import в своём коде. Если у вас установлен Python 3.4 или новее, pip уже включён — отдельная установка не требуется.

В этой главе рассмотрено всё необходимое для уверенной работы с pip: проверка установки, установка и удаление пакетов, фиксация версий, экспорт зависимостей и устранение типичных ошибок.

Проверка установки pip

Откройте терминал и выполните:

pip --version

Вы увидите вывод, похожий на следующий:

pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.12)

Если команда не найдена или у вас установлено несколько версий Python, используйте форму python -m pip — она гарантирует запуск pip для нужного интерпретатора Python:

python -m pip --version

Обновление pip

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

python -m pip install --upgrade pip

Установка пакетов

Базовая установка

pip install requests

pip скачивает requests и все его зависимости из PyPI и устанавливает их в активное окружение Python. После установки вы можете сразу импортировать пакет.

Установка конкретной версии

Укажите точную версию, если важна воспроизводимость:

pip install requests==2.31.0

Можно также задать диапазон версий с помощью операторов сравнения:

pip install "requests>=2.28,<3.0"

Всегда заключайте диапазоны в кавычки в командной оболочке, чтобы символы < и > не интерпретировались как перенаправление.

Установка из файла требований

Файл requirements.txt содержит список всех пакетов, необходимых проекту, по одному на строку. Установите все пакеты из файла одной командой:

pip install -r requirements.txt

Типичный файл requirements.txt выглядит так:

requests==2.31.0
flask>=3.0,<4.0
sqlalchemy

Установка в редактируемом режиме

Если вы разрабатываете локальный пакет и хотите, чтобы изменения вступали в силу без переустановки, используйте флаг -e:

pip install -e .

При этом каталог пакета напрямую связывается с окружением вместо копирования файлов.

Установка только для текущего пользователя

Если у вас нет прав на запись в системный каталог Python и вы не используете виртуальное окружение, добавьте --user:

pip install --user requests

Пакет устанавливается в домашний каталог пользователя (~/.local/ на Linux/macOS). Это запасной вариант — использование виртуального окружения почти всегда является лучшим решением.

Просмотр и инспекция пакетов

Список всех установленных пакетов

pip list

Пример вывода:

Package    Version
---------- -------
pip        24.0
requests   2.31.0
setuptools 69.0.3

Просмотр сведений о пакете

pip show requests

Вывод включает версию, автора, лицензию, место установки, а также — что важно — зависимости пакета и то, что зависит от него:

Name: requests
Version: 2.31.0
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
License: Apache 2.0
Location: /usr/lib/python3/dist-packages
Requires: certifi, charset-normalizer, idna, urllib3
Required-by:

Проверка конфликтов версий

pip check

pip сканирует все установленные пакеты и сообщает о несовместимых требованиях. Если всё в порядке, команда завершается без вывода.

Обновление и удаление пакетов

Обновление пакета

pip install --upgrade requests

Устанавливается последняя версия, удовлетворяющая ограничениям, уже имеющимся в вашем окружении.

Обновление всех пакетов (встроенной команды нет)

В pip нет единой команды для обновления всех установленных пакетов. Распространённый обходной путь с использованием pip list и xargs:

pip list --outdated --format=freeze | cut -d = -f 1 | xargs pip install --upgrade

Используйте это с осторожностью в окружении проекта — массовые обновления могут привести к несовместимым изменениям. Зафиксированные файлы requirements.txt — более безопасная альтернатива.

Удаление пакета

pip uninstall requests

pip запрашивает подтверждение перед удалением пакета. Передайте -y, чтобы пропустить запрос в скриптах:

pip uninstall -y requests

Экспорт зависимостей

Фиксация текущего окружения

Команда pip freeze выводит все установленные пакеты с их точными версиями в формате, подходящем для файла requirements.txt:

pip freeze > requirements.txt

Вывод выглядит следующим образом:

certifi==2024.2.2
charset-normalizer==3.3.2
idna==3.6
requests==2.31.0
urllib3==2.2.1

Передайте requirements.txt коллегам или добавьте в репозиторий, чтобы любой мог воспроизвести ваше окружение с помощью pip install -r requirements.txt.

pip и виртуальные окружения

По умолчанию pip устанавливает пакеты глобально (или для конкретного пользователя с --user). Это создаёт проблемы, когда двум проектам нужны разные версии одной библиотеки.

Решение — виртуальное окружение: изолированная установка Python со своим pip и своим каталогом site-packages. Когда виртуальное окружение активно, pip install затрагивает только это окружение.

# Create a virtual environment named .venv
python -m venv .venv

# Activate it (macOS / Linux)
source .venv/bin/activate

# Activate it (Windows)
.venv\Scripts\activate

# Now pip works inside the isolated environment
pip install requests

Полный рабочий процесс описан в главе Виртуальные окружения Python.

Подробный вывод

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

pip install --verbose requests

Добавьте -v дважды (-vv) для ещё большей детализации, включая HTTP-запросы, которые pip отправляет на PyPI.

Типичные ошибки и их устранение

ОшибкаВероятная причинаРешение
command not found: pippip не в PATH или не установленИспользуйте python -m pip или установите pip через ensurepip
Permission deniedНет прав на запись в системный PythonДобавьте --user или активируйте виртуальное окружение
Could not find a version that satisfies the requirementНеверное имя пакета или версия не существуетПроверьте точное имя на pypi.org
ResolutionImpossibleКонфликтующие требования к версиям между пакетамиИспользуйте pip check для выявления конфликтов; ослабьте ограничения версий
SSL certificate verify failedКорпоративный прокси или устаревшие сертификатыОбновите набор CA-сертификатов или используйте --trusted-host pypi.org

Справочная таблица

ЗадачаКоманда
Проверить версию pippip --version
Установить пакетpip install requests
Установить конкретную версиюpip install requests==2.31.0
Установить из файла требованийpip install -r requirements.txt
Обновить пакетpip install --upgrade requests
Удалить пакетpip uninstall requests
Список установленных пакетовpip list
Показать сведения о пакетеpip show requests
Экспортировать текущее окружениеpip freeze > requirements.txt
Проверить конфликтыpip check

Связанные главы

  • Модули Python — разберитесь, как Python импортирует код, прежде чем устанавливать сторонние пакеты
  • Виртуальные окружения Python — изолируйте зависимости проекта, чтобы установки pip никогда не конфликтовали

Практика

Практика
Which pip command exports all installed package versions to a file?
Which pip command exports all installed package versions to a file?
Was this page helpful?