pip — управление Python-пакетами (в контексте DevOps)
pip — пакетный менеджер Python. Он используется для установки, обновления и удаления Python-пакетов из Python Package Index (PyPI) и других источников.
Связь Python и pip
На машине может быть установлено несколько версий Python, и у каждой может быть свой pip.
Поэтому предпочтительно использовать:
или вне виртуального окружения:
вместо:
Так явно указывается, какой Python должен запустить pip.
Например:
1. Проверка Python
Перед созданием окружения проверить используемый Python:
Проверить версию:
Показать все python3, найденные через $PATH:
Например:
Первый найденный путь используется при выполнении:
2. Проверка pip
Проверить версию pip, связанную с текущим Python:
Пример:
Проверить расположение отдельной команды pip:
Показать все найденные варианты:
3. Создание виртуального окружения
Для каждого Python-проекта рекомендуется использовать отдельное виртуальное окружение.
Создать:
Структура:
project/
└── venv/
├── bin/
│ ├── python
│ ├── python3
│ ├── pip
│ └── ...
├── include/
├── lib/
└── pyvenv.cfg
Активировать:
После активации:
4. Проверка виртуального окружения
После активации обязательно проверить:
Ожидаемый результат:
Проверить:
Проверить pip:
Также можно проверить:
Ожидаемый путь:
Таким образом:
Homebrew Python
│
│ python3 -m venv venv
▼
Virtual Environment
│
├── python
├── pip
├── ansible
├── molecule
└── другие зависимости
5. Обновление pip
После создания нового venv рекомендуется обновить pip:
Сокращённый вариант:
Где:
эквивалентно:
Проверить версию:
При необходимости обновить основные инструменты сборки Python-пакетов:
6. Установка пакета
Общий синтаксис:
Например:
Установить Molecule:
Установить ansible-lint:
Установить Python SDK для Docker:
Note
Python-пакет docker — это Docker SDK for Python.
Он не устанавливает Docker Engine или Docker Desktop.
7. Установка нескольких пакетов
Можно установить несколько пакетов одной командой:
Для окружения Ansible + Molecule:
8. Установка последней доступной версии
Если версия явно не указана:
pip выбирает актуальную версию пакета, совместимую с текущим Python и установленными зависимостями.
Для уже установленного пакета использовать:
или:
9. Просмотр доступных версий
Посмотреть версии пакета, доступные через индекс:
Для Ansible:
Для ansible-core:
Для Docker SDK:
10. Установка конкретной версии
Указать версию через ==:
Например:
Это особенно полезно для воспроизводимых окружений и CI/CD.
11. Просмотр установленных пакетов
Показать все пакеты текущего Python-окружения:
Пример:
Package Version
------------- -------
ansible ...
ansible-core ...
ansible-lint ...
docker ...
molecule ...
pip ...
12. Информация о конкретном пакете
Например:
Ansible:
Docker SDK:
Команда показывает:
- версию;
- расположение пакета;
- зависимости;
- пакеты, которые зависят от него.
13. Поиск устаревших пакетов
Показать пакеты, для которых существуют более новые версии:
Пример:
14. Обновление одного пакета
Полная форма:
Короткая:
15. Обновление основных DevOps Python-пакетов
Например:
После обновления проверить зависимости:
16. Проверка зависимостей
Проверить, удовлетворены ли зависимости установленных пакетов:
Если проблем нет:
Эту проверку полезно выполнять после обновления пакетов.
17. Удаление пакета
Удалить пакет:
Перед удалением pip запросит подтверждение.
Удалить без подтверждения:
Удалить несколько:
18. Фиксация текущего окружения
Сохранить установленные пакеты и их точные версии:
Записать результат в файл:
Посмотреть файл:
Пример:
19. Восстановление окружения из requirements.txt
Создать новое виртуальное окружение:
Активировать:
Обновить pip:
Установить зависимости:
Проверить:
20. Свежие версии и зафиксированные версии
Есть два разных подхода.
Получить свежие версии
или обновить существующие:
Это означает:
Воспроизвести существующее окружение
Это означает:
Для production и CI/CD воспроизводимость обычно важнее постоянной установки самых новых версий.
21. pip и Ansible Galaxy — не одно и то же
Через pip устанавливаются Python-пакеты:
python -m pip install ansible
python -m pip install molecule
python -m pip install ansible-lint
python -m pip install docker
Это пакеты из Python-экосистемы:
Ansible Collections устанавливаются через ansible-galaxy.
Например:
Обновить:
Показать установленные Collections:
Схематично:
Python / PyPI
│
└── pip
├── ansible
├── molecule
├── ansible-lint
└── docker
Ansible Galaxy
│
└── ansible-galaxy
└── community.docker
22. requirements.yml для Ansible Galaxy
Ansible-зависимости можно описать отдельно:
Установить:
Таким образом можно хранить отдельно:
Где:
23. Полное создание Ansible + Molecule окружения с нуля
Проверить Python:
Создать каталог проекта:
Создать виртуальное окружение:
Активировать:
Проверить:
Обновить pip:
Установить инструменты:
Установить Docker Collection:
Проверить версии:
Посмотреть Python-пакеты:
Проверить зависимости:
Посмотреть устаревшие пакеты:
24. Обновление существующего окружения
Активировать:
Обновить pip:
Посмотреть устаревшие пакеты:
Обновить основные инструменты:
Обновить Ansible Collection:
Проверить зависимости:
Проверить версии:
25. Выход из виртуального окружения
Выполнить:
После этого команды снова будут искаться в обычном $PATH системы.
Шпаргалка
| Задача | Команда |
|---|---|
| Проверить pip | python -m pip --version |
| Обновить pip | python -m pip install -U pip |
| Установить пакет | python -m pip install <package> |
| Установить несколько | python -m pip install <package1> <package2> |
| Обновить пакет | python -m pip install -U <package> |
| Посмотреть пакеты | python -m pip list |
| Найти устаревшие | python -m pip list --outdated |
| Информация о пакете | python -m pip show <package> |
| Доступные версии | python -m pip index versions <package> |
| Удалить пакет | python -m pip uninstall <package> |
| Проверить зависимости | python -m pip check |
| Зафиксировать окружение | python -m pip freeze > requirements.txt |
| Установить из файла | python -m pip install -r requirements.txt |
| Создать venv | python3 -m venv venv |
| Активировать venv | source venv/bin/activate |
| Выйти из venv | deactivate |
Главное
При работе с проектом придерживаться последовательности:
Homebrew
│
└── устанавливает Python
│
▼
Python
│
│ python3 -m venv venv
▼
venv
│
├── python
└── pip
│
├── ansible
├── molecule
├── ansible-lint
└── docker
Для Python-зависимостей:
Для Ansible Collections:
Для системных программ на macOS:
Это три разных уровня управления зависимостями:
Последняя проверка 02.10.2026