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 requestspip скачивает 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 checkpip сканирует все установленные пакеты и сообщает о несовместимых требованиях. Если всё в порядке, команда завершается без вывода.
Обновление и удаление пакетов
Обновление пакета
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 requestspip запрашивает подтверждение перед удалением пакета. Передайте -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: pip | pip не в 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 |
Справочная таблица
| Задача | Команда |
|---|---|
| Проверить версию pip | pip --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 никогда не конфликтовали