Гид по технологиям

Как установить и управлять PIP для Python на Windows, Mac и Linux

10 min read Python Обновлено 30 Dec 2025
Установка и управление PIP для Python
Установка и управление PIP для Python

Быстрое содержание

  • Что такое PIP и зачем он нужен
  • Проверка установки Python и PIP на разных ОС
  • Пошаговая установка и управление PIP: Windows, macOS (Homebrew, pyenv), Linux (apt/pacman/dnf/zypper/yum)
  • Виртуальные окружения: venv, virtualenv, pipenv, poetry, conda
  • Руководства, контроль версий зависимостей и лучшие практики
  • Отказоустойчивость, диагностика и пошаговый план восстановления
  • Чек-листы и шаблоны (requirements.txt, constraints, lock-файлы)

Что такое PIP для Python?

PIP — это сокращение от «PIP Installs Packages» (иногда «Preferred Installer Program»). Это стандартный менеджер пакетов для Python, который устанавливает библиотеки и утилиты из репозитория PyPI (Python Package Index). PyPI содержит тысячи пакетов для разработки веб-приложений, анализа данных, автоматизации и многого другого.

Определение: PIP — утилита командной строки для поиска, установки, обновления и удаления пакетов Python из PyPI и других источников.

Встроен ли PIP в Python?

Да — в большинстве современных сборок Python (Python 2.7.9+, Python 3.4+) PIP включён в установщик. Однако поддержка старых версий Python прекращается: например, Python 3.4 потерял официальную поддержку в марте 2019 года. Это значит отсутствие обновлений безопасности и возможные трудности при использовании новых пакетов.

Важно: всегда по возможности используйте поддерживаемую версию Python (например, 3.8+ или 3.10+ в зависимости от требований проекта).

Проверка корректной установки Python и PIP

Перед установкой зависимостей проверьте, что Python и PIP присутствуют и корректно настроены в PATH.

Windows:

py --version
py -m pip --version

macOS / Linux:

python3 --version
python3 -m pip --version

Если команды не находятся или показывают неожиданные версии — возможно, PATH настроен неверно или установлена системная (дефолтная) версия Python, которую стоит не трогать.


Установка и управление PIP на Windows

По умолчанию установщик Python на Windows кладёт исполняемые файлы в папку внутри профиля пользователя (AppData), поэтому он не требует прав администратора. При установке можно отметить опцию «Add Python to PATH» — это упростит запуск python/py и pip.

Советы по установке и отладке на Windows:

  • Рекомендуемый способ: скачать официальный установщик с python.org или использовать Microsoft Store (для пользователей, которым удобнее автоматическое обновление).
  • Если вы используете Chocolatey, избегайте смешивания глобальных установок через Chocolatey и ручных установщиков того же Python — это может привести к конфликтам.
  • Для проверки и обновления PIP используйте:
py -m pip --version
py -m pip install --upgrade pip

Распространённые проблемы и решения:

  • “Python is not defined” — PATH не содержит путь к интерпретатору. Решение: переустановите Python с опцией добавления в PATH или вручную добавьте путь к папке с python.exe.
  • Ошибки прав доступа при установке пакета: запустите от администратора или предпочтительнее — используйте виртуальное окружение в пользовательской папке.

Установка и управление PIP на macOS

При ручной установке Python создаётся папка в /Applications и фреймворк в /Library/Frameworks/Python.framework. Установщик добавляет символьную ссылку в /usr/local/bin, откуда удобно запускать Python.

Для активной разработки часто рекомендуют не менять системный Python (он нужен macOS), а устанавливать управляемые версии:

Homebrew

Homebrew удобен для установки утилит, но при установке Python он может обновлять версию без вашего контроля. Это способно привести к нежелательным изменениям site-packages и несовместимостям в проектах.

Команды:

brew install python

Проблемы: при автоматическом обновлении Homebrew может заменить 3.8 на 3.9, и ваши установленные глобальные пакеты окажутся в другом каталоге.

Pyenv — контроль версий Python

Pyenv даёт возможность устанавливать и переключаться между множеством версий Python локально для проекта, глобально для пользователя или для текущей сессии.

Установка зависимостей через Homebrew:

brew install openssl readline sqlite3 xz zlib
brew install pyenv

Добавьте инициализацию pyenv в профиль оболочки (пример для ZSH):

echo 'eval "$(pyenv init --path)"' >> ~/.zprofile
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

Перезапустите Terminal.

Управление версиями:

pyenv install --list
pyenv install 3.9.7
pyenv versions
pyenv global 3.9.7
python3 --version
python3 -m pip --version
python3 -m pip install --upgrade pip

Локальная версия (для проекта):

pyenv local 3.8.12

Важно: команда pyenv local создаёт файл .python-version в текущей папке, который управляет версией для данного каталога.


python framework executable libraries mac

Изображение: структура фреймворка Python и исполняемые файлы на macOS

edit zshrc file mac

Изображение: пример редактирования ~/.zshrc для инициализации pyenv

pyenv-python-version-manager-mac

Изображение: pyenv — управление версиями Python на macOS


Установка и управление PIP на Linux

Многие дистрибутивы Linux поставляют Python по умолчанию, но версия может быть неактуальной. Проверяйте:

python3 --version
python3 -m pip --version

Установка PIP через пакетный менеджер (примеры для популярных дистрибутивов):

Ubuntu / Debian (APT):

sudo apt update
sudo apt install python3-pip

Arch Linux (Pacman):

sudo pacman -Syu
sudo pacman -S python-pip

Fedora (DNF — Dandified Yum):

sudo dnf install python3-pip python3-wheel

openSUSE (Zypper):

sudo zypper install python3-pip python3-setuptools python3-wheel

CentOS / RHEL (Yum):

sudo yum install python3 python3-wheel

Рекомендации:

  • Предпочитайте системные пакеты для системного ПО и утилит, но не устанавливайте глобальные пакеты для разработки в системные каталоги — используйте виртуальные окружения.
  • На серверах часто используют виртуальныеenv или контейнеризацию (Docker), чтобы не менять системный Python.

Виртуальные окружения: зачем и как

Почему не ставить пакеты глобально?

  • Разные проекты могут требовать разные версии одной и той же библиотеки.
  • Глобальная установка создаёт хрупкую систему, где одно обновление может сломать несколько проектов.

Инструменты для изоляции:

  • venv (встроенный модуль в Python 3): лёгкий и рекомендуемый для большинства.
  • virtualenv: старый инструмент с поддержкой Python 2 и дополнительными возможностями.
  • pipenv: объединяет pip и virtualenv и добавляет управление Pipfile/Pipfile.lock.
  • poetry: управление зависимостями + публикация пакетов + lock-файл; более современный рабочий процесс.
  • conda: менеджер окружений и пакетов, часто используется в науке о данных для бинарных зависимостей.
  • pipx: для установки и запуска отдельных CLI-инструментов Python в изолированной среде.

Как создать venv:

# Создать
python3 -m venv .venv
# Активировать (macOS/Linux)
source .venv/bin/activate
# Активировать (Windows PowerShell)
.\.venv\Scripts\Activate.ps1
# Установить пакет
pip install requests
# Выйти
deactivate

Совет: добавляйте .venv в .gitignore или используйте имя окружения .venv и конфиг для IDE.


Базовый набор команд PIP (установки, обновления, удаление)

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

# macOS / Linux
python3 -m pip install "SomeProject"
# Windows
py -m pip install "SomeProject"

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

python3 -m pip install "SomeProject==1.0"

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

python3 -m pip install --upgrade "SomeProject"

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

python3 -m pip uninstall "SomeProject"

Показать установленные и устаревшие пакеты:

python3 -m pip list
python3 -m pip list --outdated

Установка из requirements.txt:

python3 -m pip install -r requirements.txt

Установка в editable режиме (разработка пакета):

python3 -m pip install -e ./my_package

Установка из Git:

python3 -m pip install git+https://github.com/owner/repo.git@branch#egg=package_name

Управление зависимостями и воспроизводимость

Чтобы обеспечить воспроизводимость, используйте lock-файлы и фиксируйте версии зависимостей.

Шаблон requirements.txt:

Django==3.2.12
requests==2.28.1
numpy==1.23.0

Ограничивающий файл (constraints.txt) пригодится, когда вы хотите задать верхние/нижние границы версий при установке пакетов, не перечисляя их напрямую в requirements.

pip-tools (pip-compile) — удобен для генерации разрешённых версий:

pip install pip-tools
pip-compile requirements.in
pip-sync

Poetry использует pyproject.toml + poetry.lock, предлагает более современный подход:

poetry init
poetry add requests
poetry install

Безопасность и надёжность

Практики безопасности при использовании PIP:

  • Не устанавливайте пакеты с неизвестных источников.
  • В CI используйте только доверенные зеркала PyPI или собственный прокси/кеш.
  • Проверяйте известные уязвимости в зависимостях (safety, Dependabot, GitHub Security Alerts).
  • Пакеты из PyPI могут содержать исходные и бинарные компоненты — проверяйте подписи и собирайте из исходников при необходимости.

Команда для проверки уязвимостей (пример):

pip install safety
safety check --full-report

Отказоустойчивость: когда PIP “ломается” и как восстановиться

Типовые сценарии отказа и шаги восстановления:

  1. Не устанавливаются пакеты из-за ошибок сборки (build wheel):

    • Установите системные зависимости (compilers, libxml2-dev, libssl-dev и т. п.).
    • Попробуйте pip install --no-binary :all: package для сборки из исходников.
  2. Конфликт версий зависимостей:

    • Используйте виртуальные окружения для изоляции.
    • Примените pip-tools или poetry для разрешения версий.
  3. PIP повреждён или отсутствует:

    • Переустановите pip:
python -m ensurepip --upgrade
python -m pip install --upgrade pip
  1. Проблемы с правами доступа:

    • Не используйте sudo pip install для пользовательских проектов — вместо этого применяйте venv или pip install --user.
  2. Сетевые ошибки при установке:

    • Проверьте прокси/файрволл.
    • Используйте зеркала PyPI (--index-url) или локальный зеркальный сервер.

SOP: стандартная операционная процедура для начала проекта

  1. Установите версию Python (рекомендуется pyenv или системный пакет в CI).
  2. Создайте виртуальное окружение: python3 -m venv .venv.
  3. Активируйте окружение и обновите pip: python3 -m pip install --upgrade pip.
  4. Установите зависимости из requirements.txt или poetry.lock.
  5. Выполните тесты и зафиксируйте lock-файл.
  6. Зафиксируйте .venv в .gitignore и добавьте инструкции установки в README.

Критерии приёмки:

  • Проект запускается локально с python3 -m venv .venv и pip install -r requirements.txt без ошибок.
  • Все тесты проходят в CI с тем же set’ом зависимостей.

Чек-листы по ролям

Разработчик:

  • Проверил версию Python проекта
  • Создал виртуальное окружение и активировал его
  • Установил зависимости из lock-файла
  • Запустил тесты

Системный администратор / DevOps:

  • Настроил зеркала PyPI для CI
  • Добавил кэширование pip в CI для ускорения сборок
  • Обеспечил наличие системных библиотек для сборки расширений

Product Manager / Технический руководитель:

  • Подтвердил, что используемые версии пакетов поддерживаются и безопасны
  • Утвердил стратегию обновлений зависимостей (еженедельно/ежемесячно)

Шаблоны и примеры

Пример requirements.in (входной файл для pip-compile):

Django>=3.2,<4.0
requests>=2.25

Пример requirements.txt (сгенерирован pip-compile):

Django==3.2.12
pytz==2021.3
requests==2.27.1
certifi==2021.10.8

CI snippet (пример для GitHub Actions):

name: CI
on: [push]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.9'
      - name: Install dependencies
        run: |
          python -m venv .venv
          source .venv/bin/activate
          python -m pip install --upgrade pip
          pip install -r requirements.txt
      - name: Run tests
        run: pytest

Тесты и критерии приёмки для установки среды

Тестовые случаи:

  • Установка чистой среды: создание venv и успешная установка всех пакетов из requirements.txt.
  • Проверка детерминированности: установка на двух машинах даёт одинаковые версии установленных пакетов (при использовании lock-файла).
  • Проверка отката: установка конкретной версии пакета и последующий откат к предыдущей версии.

Критерии приёмки:

  • Установка проходит без прав администратора внутри venv.
  • Все бинарные расширения собираются или доступны в виде wheel для целевой платформы.

Альтернативы и когда PIP не подходит

Когда выбирать альтернативы:

  • conda: если требуется управлять не только Python-пакетами, но и нативными бинарными зависимостями (например, специфичные C-библиотеки для научных пакетов).
  • poetry: если нужен современный workflow с управлением пакетов и публикацией; предпочтительно для библиотек и приложений, требующих lock-файла.
  • pipenv: интеграция pip + virtualenv, но у некоторых команд он вызывал проблемы с производительностью и конфликтами; poetry зачастую рассматривают как более зрелую альтернативу.

Контрпримеры, когда PIP не годится:

  • Пакеты, требующие специфичных бинарных библиотек, которых нет в системе и сложно собрать — в этом случае conda или системные пакеты удобнее.

Ведение обновлений: стратегия и частота

Рекомендации:

  • Локальное развитие: обновляйте мелкие патчи (patch) чаще, мажорные версии проверяйте вручную.
  • В CI используйте Dependabot или аналог для автоматических PR с обновлениями зависимостей.
  • Тестируйте каждое обновление в staging перед продом.

Пример политики:

  • Критические обновления безопасности — немедленно.
  • Мелкие обновления (patch) — ежемесячно.
  • Минорные и мажорные — по согласованию, с планом отката.

Диагностика и распространённые ошибки (с примерами)

  1. Ошибка: “Failed building wheel for package”

    • Причина: отсутствуют системные библиотеки/заголовки.
    • Решение: установить dev-пакеты (например, libssl-dev, build-essential) или использовать wheel-билд поставщика.
  2. Ошибка: “Permission denied” при установке глобально

    • Причина: попытка писать в системные каталоги.
    • Решение: использовать --user, venv или запуск от администратора (последний — нежелателен).
  3. Ошибка: команда pip не найдена

    • Причина: pip не в PATH или не установлен.
    • Решение: python3 -m ensurepip --upgrade или python3 -m pip install --upgrade pip.
  4. Конфликты зависимостей

    • Причина: несогласованные требования разных пакетов.
    • Решение: pin-версия, использовать pip-compile или poetry для разрешения.

Краткая галерея крайних случаев

  • Установка пакета, удалённого с PyPI: используйте зеркала или храните приватные пакеты во внутреннем репозитории.
  • Нестабильный сетевой доступ в CI: включите локальный кеш pip или используйте предварительно закешированные wheel-артефакты.

1‑строчный глоссарий

  • PIP: пакетный менеджер Python.
  • PyPI: центральный индекс пакетов Python.
  • venv: встроенный модуль для создания виртуальных окружений.
  • pyenv: инструмент управления версиями Python.
  • wheel: бинарный формат пакета Python (.whl).
  • pip-tools: набор утилит (pip-compile, pip-sync) для управления требованиями.

FAQ — часто задаваемые вопросы

Нужно ли всегда обновлять PIP?

Да — обновление PIP рекомендуется для получения исправлений багов, безопасности и улучшений совместимости. Обновляйте в контролируемой среде (локально или в CI).

Можно ли использовать sudo pip install?

Нет. Не рекомендуется использовать sudo для установки пользовательских зависимостей. Применяйте venv или pip install --user.

Чем отличается pip install от pipx?

pip устанавливает пакеты в текущее окружение, pipx — устанавливает CLI-инструменты в изолированное окружение и делает их доступными глобально.


Заключение

PIP — основной инструмент управления пакетами в экосистеме Python. Правильная настройка Python и PIP, использование виртуальных окружений и систематический контроль зависимостей делают разработку более предсказуемой и безопасной. Для проектов выбирайте стратегию: venv + requirements.txt (простые проекты), pyenv + pip-tools (контроль версий), poetry (современное управление зависимостями) или conda (науки о данных с бинарными зависимостями).

В следующем шаге: создайте venv, зафиксируйте зависимости в requirements.txt или lock-файле и интегрируйте проверку зависимостей в CI.


Изображение: обложка книги по Python в руках пользователя

An O'Reilly Python book, featuring a large snake on the cover, held in somebody's hands

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Отслеживание резолюций в Google Календаре
Продуктивность

Отслеживание резолюций в Google Календаре

Как учить язык с Kindle Paperwhite
Обучение

Как учить язык с Kindle Paperwhite

Прозрачная панель задач Windows — как сделать
Windows

Прозрачная панель задач Windows — как сделать

Как продать технику на Craigslist безопасно
Продажа техники

Как продать технику на Craigslist безопасно

Как очистить историю поиска в Facebook
Приватность

Как очистить историю поиска в Facebook

Умный дом: как гаджеты помогают спать лучше
Здоровье

Умный дом: как гаджеты помогают спать лучше