Как сгенерировать файл 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.
Главное — не забывайте обновлять файл по мере развития проекта. Это простая привычка, которая экономит кучу времени в будущем.