pip
Что такое pip?
pip — инструмент пакетов Python. Имя собрано из слов pip installs packages. Пакеты лежат в реестре PyPI. requirements.txt — список пакетов проекта. pip install -r читает этот список. С Python 3.4 pip обычно идёт вместе с Python. Виртуальная среда собирает пакеты внутри проекта, чтобы версия другого проекта не вмешалась. Разница с Python такая: Python запускает файл, а pip сам никакую программу не запускает. Разница с Node.js такая же: Node запускает JavaScript и не использует pip. Пакет Node приходит через npm. pip только для Python.
Для чего нужен pip?
pip нужен, чтобы один раз поставить библиотеку и повторить тот же список на другом компьютере.
- Поставить готовую библиотеку в проект
- Хранить список в requirements.txt
- Отделить версию в виртуальной среде
- Заменить старый пакет более новым
Что можно делать с pip?
Через pip скачивают пакет, ставят из списка и показывают установленное имя. Сам он программу на Python не пишет. Код пакета может запуститься твоей командой. Установка незнакомого пакета приносит и этот код.
Сложно ли освоить pip?
Поставить один пакет легко. Трудность в том, что версии смешиваются. pip на компьютере может смотреть на другой Python. Ставить только руками, не записав список, завтра на другой машине не даст того же результата. Без виртуальной среды пакет падает в общее место.
Плюсы и ограничения
Плюс: библиотеку не переписывают, список лежит в одном файле, и он уже идёт с Python. Ограничение: установка в неверный Python даёт тихую ошибку. Не каждой мелкой работе нужен пакет. pip — это не сам Python.
Основные понятия
Пакет — готовый код. Список говорит, что нужно проекту. Среда — отдельная папка этих пакетов.
- pip install ставит один пакет
- requirements.txt хранит список
- venv отделяет среду
- PyPI — общее место пакетов
Короткий пример
Эта команда ставит пакеты из списка. Если список пуст, она ничего не скачивает.
pip install -r requirements.txt
Частые вопросы
- pip и Python — одно и то же? Нет. Python запускает файл .py. pip приносит библиотеку этого файла и сам программу не запускает.
- pip и Node.js — одно и то же? Нет. Node запускает JavaScript и не использует pip. Пакет Node приходит через npm. pip только для Python.
- requirements.txt — это сам пакет? Нет. Это список имён.