Установка pip для Python 3 и базовые команды

Установка pip для Python 3 и базовые команды Полезное

pip — стандартный менеджер пакетов Python: он скачивает библиотеки из каталога PyPI (Python Package Index) и устанавливает их в конкретный интерпретатор Python. Ниже — как проверить, есть ли pip, как его поставить в Windows, macOS и Linux, как работать через виртуальное окружение и какие команды нужны каждый день.

Команды и вывод проверены 23.09.2026 в двух средах: Python 3.14.7 с pip 26.2.1 (официальный образ python:3.14-slim) и Ubuntu 24.04 с системным Python 3.12.3 и pip 24.0. Номера версий у вас будут другими — это нормально.

Четыре понятия, которые путают

Понятие Что это Пример
PyPI Каталог пакетов в интернете, откуда pip берет файлы requests, numpy
pip Программа-установщик, привязанная к одному интерпретатору python -m pip install requests
venv Отдельная папка-окружение со своим Python и своими пакетами .venv/ в папке проекта
Системный менеджер пакетов Установщик ОС, ставит пакеты для всей системы apt install python3-requests

Главное следствие: у каждого установленного Python свой набор пакетов. Если на компьютере два Python, пакет, поставленный «не тем» pip, не будет виден вашей программе. Поэтому дальше везде используется форма python -m pip: она вызывает pip именно того интерпретатора, который вы запускаете.

Шаг 1. Проверить, установлен ли pip

python --version
python -m pip --version

В образе Python 3.14 результат такой:

Python 3.14.7
pip 26.2.1 from /usr/local/lib/python3.14/site-packages/pip (python 3.14)

Вторая строка отвечает на два вопроса сразу: pip есть и он относится к Python 3.14. В Linux и macOS интерпретатор часто называется python3, а не python — тогда команды те же, но с python3. В Windows работает команда py: py -m pip --version. С Python 3.14 python.org рекомендует для Windows новый Python install manager (классический установщик объявлен устаревшим), и он намеренно не создает глобальную команду pip — поэтому голое pip там может не находиться, а py -m pip и python -m pip работают.

Шаг 2. Если pip нет — установить под свою ОС

Установщики Python с python.org для Windows и macOS ставят pip вместе с интерпретатором (в Windows с install manager — как модуль для py -m pip, без отдельной команды pip). Если его нет, способ зависит от того, откуда взят Python:

Откуда Python Как получить pip
Установщик python.org (Windows, macOS) python -m ensurepip --upgrade (в Windows — py -m ensurepip --upgrade)
Homebrew на macOS brew install python — pip идет в комплекте, команда pip3
Debian, Ubuntu sudo apt install python3-pip python3-venv
Fedora, RHEL и производные sudo dnf install python3-pip
Ничего из этого не помогло скрипт get-pip.py с сайта PyPA (bootstrap.pypa.io), запуск python get-pip.py

ensurepip — модуль стандартной библиотеки, который ставит встроенную копию pip без интернета. Но в Debian и Ubuntu в системном Python его нет — он приезжает вместе с пакетом python3-venv, и прогон на Ubuntu 24.04 это показывает:

$ python3 -m pip --version
/usr/bin/python3: No module named pip
$ python3 -m ensurepip
/usr/bin/python3: No module named ensurepip

После sudo apt install python3-pip python3-venv та же проверка дает pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.12). Команда easy_install pip из старых инструкций больше не работает: easy_install удален из setuptools.

Шаг 3. Создать виртуальное окружение

Рекомендуемый способ ставить библиотеки для проекта — не в систему, а в виртуальное окружение внутри папки проекта:

python -m venv .venv
. .venv/bin/activate
python -m pip --version
pip 26.2.1 from /work/.venv/lib/python3.14/site-packages/pip (python 3.14)

Путь в выводе теперь ведет в .venv — значит, пакеты пойдут в окружение проекта, а не в систему. В Windows активация другая: .venv\Scripts\activate в cmd или .venv\Scripts\Activate.ps1 в PowerShell. Выйти из окружения — команда deactivate. Папку .venv в git не добавляют: ее пересоздают из списка зависимостей.

Базовые команды pip на одном примере

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

python -m pip install requests==2.32.3
python -m pip list
python -m pip freeze > requirements.txt
python -m pip uninstall -y requests
python -m pip install -r requirements.txt
python -m pip check

Что видно по шагам. install вместе с requests ставит его зависимости:

Successfully installed certifi-2026.7.22 charset-normalizer-3.5.1 idna-3.20 requests-2.32.3 urllib3-2.8.0

pip list показывает все пакеты окружения, включая сам pip:

Package            Version
------------------ ---------
certifi            2026.7.22
charset-normalizer 3.5.1
idna               3.20
pip                26.2.1
requests           2.32.3
urllib3            2.8.0

pip freeze пишет те же пакеты в формате имя==версия и без pip — это файл, по которому окружение можно собрать заново. uninstall -y requests удаляет только requests: его зависимости остаются, поэтому повторная установка из requirements.txt доставила один пакет. pip check в конце ответил No broken requirements found. — конфликтов версий нет.

Задача Команда
Установить последнюю версию python -m pip install requests
Установить точную версию python -m pip install requests==2.32.3
Диапазон версий python -m pip install "requests>=2.32,<3"
Обновить пакет python -m pip install --upgrade requests
Обновить сам pip python -m pip install --upgrade pip
Сведения о пакете python -m pip show requests
Список пакетов python -m pip list
Зафиксировать версии python -m pip freeze > requirements.txt
Установить из файла python -m pip install -r requirements.txt
Удалить пакет python -m pip uninstall requests
Проверить совместимость python -m pip check

Кавычки в строке с диапазоном нужны, чтобы оболочка не приняла < и > за перенаправление ввода-вывода.

Команда pip search из старых статей не работает: PyPI отключил этот поиск. Прогон на pip 26.2.1 заканчивается ошибкой RuntimeError: PyPI no longer supports 'pip search' (or XML-RPC search). Please use https://pypi.org/search (via a browser) instead. Искать пакеты нужно на сайте PyPI в браузере.

Ошибка externally-managed-environment и как ее исправить

Во многих современных Linux-дистрибутивах (например, Ubuntu 24.04 и Debian 12), а также в Python из Homebrew на macOS pip по умолчанию не дает ставить пакеты в системный Python. Неверный путь — ставить пакет прямо в систему:

pip3 install requests

Результат на Ubuntu 24.04 (фрагмент):

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

Это не поломка, а защита по стандарту PEP 668: системный Python используют утилиты самой ОС (или пакеты Homebrew), и пакет из PyPI может подменить нужную им версию библиотеки. Исправление — виртуальное окружение:

python3 -m venv .venv
. .venv/bin/activate
python -m pip install requests
python -c "import requests; print(requests.__version__)"

В прогоне последняя строка вывела 2.34.2 — установка прошла. Для консольных программ (не библиотек проекта) удобнее pipx: он сам создает окружение под каждую программу. Флаг --break-system-packages снимает запрет, но может сломать системные утилиты — в учебных и рабочих проектах он не нужен.

Если не получилось

Симптом Причина Что делать
pip: command not found (в Windows — команда не распознается) pip не установлен или не в PATH Вызывать python -m pip; если модуля нет — шаг 2
No module named pip У этого интерпретатора нет pip ensurepip или пакет python3-pip в Linux
No matching distribution found for ... Опечатка в имени или нет сборки под вашу версию Python Сверить имя на PyPI и версии, которые поддерживает пакет
Пакет установлен, а import падает Пакет ушел в другой Python Сравнить путь из python -m pip --version и запускать программу тем же Python
Permission denied при установке Попытка писать в системные каталоги Не использовать sudo pip, работать в venv

Про безопасность: pip выполняет код при сборке пакетов из исходников и доверяет имени, которое вы ввели. Поддельные пакеты с похожими названиями (reqeusts вместо requests) — известный прием атак, поэтому имя стоит копировать со страницы проекта. В рабочих проектах версии фиксируют в requirements.txt, а для строгой проверки есть режим --require-hashes: он требует хеш у каждого пакета в файле. pip freeze хешей не пишет — их добавляют отдельно (например, python -m pip hash <файл> или инструментом pip-tools с флагом --generate-hashes).

Выводы

  • pip ставит пакеты в конкретный интерпретатор; форма python -m pip убирает путаницу между несколькими Python.
  • Проверка — python -m pip --version; если pip нет, способ установки зависит от источника Python: ensurepip, Homebrew или пакет python3-pip в Linux.
  • Библиотеки проекта ставят в виртуальное окружение venv, а версии фиксируют через pip freeze > requirements.txt.
  • Ошибка externally-managed-environment — защита системного Python по PEP 668; решение — venv или pipx, а не sudo pip.
  • pip search и easy_install из старых инструкций больше не работают.

Где применяется / связь с практикой

Освойте тему на практике

Установка пакетов — первое, с чем сталкиваешься при любой задаче на Python: веб-запросы, анализ данных, боты, автоматизация. Если хочется пройти путь от окружения и зависимостей до собственных программ с разбором заданий, посмотрите курс Python Developer. Basic. Отдельные темы можно попробовать на бесплатных открытых уроках Otus.

FAQ

Чем pip отличается от pip3?
Это разные имена одной программы: pip3 явно указывает на Python 3, а pip может указывать на любой установленный Python. Надежнее вызывать python -m pip нужным интерпретатором.

Можно ли поставить пакет без интернета?
Да, если заранее скачать файлы: python -m pip download -r requirements.txt -d wheels на машине с сетью, затем python -m pip install --no-index --find-links wheels -r requirements.txt. Wheel — готовый формат пакета, который не нужно собирать при установке. Скачивать нужно на машине с той же ОС, архитектурой и версией Python: часть wheel-файлов собрана под конкретную платформу (в прогоне charset_normalizer скачался как файл для cp314 и Linux aarch64).

Нужен ли pip, если я пользуюсь conda или uv?
У conda свой менеджер пакетов и свои окружения, у uv — собственный быстрый установщик с похожими командами. pip при этом остается стандартным установщиком Python-сообщества (PyPA): он идет с официальными сборками python.org, а в Debian и Ubuntu ставится пакетом python3-pip.

OTUS Журнал