Управление зависимостями: pip, virtualenv, requirements.txt
Почему зависимостями нужно управлять? 🤔
Когда вы пишете код, особенно в команде, важно, чтобы у всех работало одинаково. Без управления зависимостями:
- Один код работает у вас, но не у коллеги — потому что у вас установлены разные версии библиотек.
- Сложно воспроизвести проект через полгода — какие библиотеки вообще нужны?
- Захламляется система — глобальные установки пакетов могут конфликтовать между собой.
Решение? pip + virtualenv + requirements.txt — связка, которая делает жизнь проще.
pip — ваш главный установщик 📦
pip — стандартный менеджер пакетов Python. С ним вы:
- Устанавливаете библиотеки (pip install requests).
- Удаляете ненужное (pip uninstall pandas).
- Ищете пакеты (pip search "web framework").
Примеры с пояснениями
# Установка последней версии
pip install django
# Установка конкретной версии (чтобы избежать конфликтов)
pip install flask==2.0.1
# Показать список установленных пакетов
pip list
# Показать детали пакета
pip show numpy
🔹 Профессиональный совет: Всегда проверяйте версии (==x.x.x), иначе обновление может сломать код!
virtualenv — изоляция проектов 🏝️
Проблема: У вас два проекта, один требует Django 3.2, другой — Django 4.0. Глобально так не сделаешь.
Решение: virtualenv создает изолированное окружение для каждого проекта.
Как использовать?
1. Установка (если нет):
pip install virtualenv
2. Создание окружения:
virtualenv myenv # создает папку myenv с Python и pip внутри
3. Активация:
- Windows:
myenv\Scripts\activate
- macOS/Linux:
source myenv/bin/activate
Теперь pip install будет ставить пакеты только в это окружение.
🔹 Важно: После работы не забывайте deactivate.
requirements.txt — контроль версий 📋
Файл requirements.txt — это список всех зависимостей проекта.
Как создать?
1. В активированном virtualenv выполните:
pip freeze > requirements.txt
2. Получите файл вида:
Django==3.2.1
requests==2.25.1
Как использовать в новом проекте?
pip install -r requirements.txt
Профессиональный лайфхак:
- Для разработки и тестов добавьте отдельные файлы (requirements-dev.txt).
- Хотите автоматизировать? Посмотрите Poetry (альтернатива pip).
Итоговая схема работы 🏆
- Создаем virtualenv для проекта.
- Активируем его и ставим зависимости через
pip. - Фиксируем версии в
requirements.txt. - Передаем проект — коллега клонирует репозиторий, создает окружение и ставит зависимости одной командой.
🚀 Теперь ваш код работает везде одинаково!