Введение

Каждый разработчик Python рано или поздно сталкивается с вопросом: как корректно зафиксировать список используемых библиотек? Для этого существует стандартный файл requirements.txt, где перечислены зависимости проекта с их версиями.

В этой статье я расскажу о двух простых способах его сгенерировать:

  1. С помощью виртуального окружения и команды pip freeze
  2. С помощью утилиты pipreqs, которая сканирует реальные импорты

Оба варианта полезны, но подходят для разных случаев. Давайте разберём детали.

Виртуальное окружение и pip freeze

Самый популярный способ создать requirements.txt — использовать pip freeze. Эта команда фиксирует все установленные пакеты внутри текущего окружения.

Шаг 1: Активируйте окружение

Убедитесь, что все зависимости уже установлены. Затем активируйте виртуальное окружение:

1# macOS/Linux
2source venv/bin/activate
3
4# Windows
5.\venv\Scripts\activate

Шаг 2: Сгенерируйте requirements.txt

Теперь выполните команду:

1pip freeze > requirements.txt

В результате появится файл со всеми библиотеками и их версиями.

Совет: всегда используйте виртуальное окружение

Это изолирует проект и упрощает работу с зависимостями. Создать окружение можно так:

python -m venv venv

Анализ импортов с помощью pipreqs

У pip freeze есть минус — он сохраняет и ненужные пакеты, которые были установлены в окружение, но не используются в проекте. Если хочется собрать только реально применяемые библиотеки, выручит утилита pipreqs.

Шаг 1: Установка pipreqs

1pip install pipreqs

Шаг 2: Генерация файла

Перейдите в папку проекта и выполните:

1cd /path/to/project
2pipreqs .

Точка (.) указывает на текущую директорию. Утилита просканирует все файлы и создаст requirements.txt только с нужными библиотеками.

Полезные опции

Чтобы перезаписать существующий файл, используйте --force:

1pipreqs . --force

Плюсы использования pipreqs

Файл получается «чистым» и содержит только то, что реально нужно проекту. Это облегчает сопровождение и снижает риск ошибок.

Сравнение методов

pip freeze

  • Фиксирует все установленные пакеты
  • Прост в использовании
  • Подходит, если окружение создавалось только для этого проекта
  • Гарантирует точные версии

pipreqs

  • Добавляет только реально используемые библиотеки
  • Файл получается компактным
  • Может не учесть динамические импорты
  • Нужна отдельная установка

Заключение

Файл requirements.txt — это «паспорт» вашего проекта. Он позволяет коллегам и вам самим спустя время быстро поднять рабочее окружение.

Хотите полный список с фиксированными версиями — используйте pip freeze. Нужен аккуратный минимальный набор зависимостей — выбирайте pipreqs.

Главное — не забывайте обновлять файл по мере развития проекта. Это простая привычка, которая экономит кучу времени в будущем.

Нужна помощь с управлением зависимостями?
Помогу с настройкой Python-проектов, управлением зависимостями и лучшими практиками разработки. Давайте обсудим, как оптимизировать ваш рабочий процесс.