Как сгенерировать файл requirements.txt для существующего проекта Python
Введение
Каждый разработчик Python рано или поздно сталкивается с вопросом: как корректно зафиксировать список используемых библиотек? Для этого существует стандартный файл requirements.txt
, где перечислены зависимости проекта с их версиями.
В этой статье я расскажу о двух простых способах его сгенерировать:
- С помощью виртуального окружения и команды
pip freeze
- С помощью утилиты
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
.
Главное — не забывайте обновлять файл по мере развития проекта. Это простая привычка, которая экономит кучу времени в будущем.