Статьи
July 6, 2022

Файл requirements.txt в Python и как его создать

requirements.txt — это простой текстовый файл, который содержит перечень всех модулей и пакетов, необходимых для корректной работы вашей программы. Создавая файл Python requirements.txt, вы избавляете себя от необходимости искать и устанавливать все необходимые модули вручную.

Из статьи вы узнаете о том, как создать файл requirements.txt, о его преимуществах и особенностях использования.

Преимущества использования файла зависимостей

  1. Возможность отслеживать актуальный список всех модулей и пакетов Python, используемых в вашем проекте.
  2. Облегчение процесса установки недостающих компонентов.
  3. Удобство совместной работы. Если на ПК другого пользователя отсутствуют нужные модули, они будут быстро загружены из файла requirements.txt, обеспечив беспроблемный запуск программы.
  4. Если вы захотите удалить, добавить или обновить модуль, изменения будет достаточно внести только в файл requirements.txt.
  5. При загрузке requirements.txt, GitHub проверяет зависимости на наличие конфликтов, и в некоторых случаях устраняет уязвимости.

Как создать файл зависимостей

Для этого вам достаточно перейти в корневой каталог проекта, где хранятся ваши .py-файлы, и создать текстовый документ requirements.txt. Важно убедиться, чтобы название было именно таким.

Также этот файл может быть сгенерирован автоматически с помощью следующей команды:

pip freeze > requirements.txt

Она возвращает список всех установленных модулей с указанием версий и помещает их в текстовый файл. Обратите внимание, что pip freeze подразумевает использование виртуальной среды для текущего проекта. В противном случае, список зависимостей может включать в себя и те пакеты, которые установлены в другие виртуальные среды.

Дополнительный вариант использования этой команды, который возвращает только локальные установленные пакеты:

pip freeze --local

Добавление модулей в файл

После создания файла его необходимо заполнить названиями модулей и их версиями. Самый простой способ — сделать это вручную. Вот пример содержимого requirements.txt:

matplotlib==3.2.1
numpy==1.18.5
pandas==1.0.4
tensorflow==2.3.1

Перечислив все зависимости, сохраняем файл и закрываем его.

Второй способ — команда pip freeze > requirements.txt, которая работает, даже если файл уже существует. Его пустое содержимое будет заполнено списком пакетов так же, как и при генерации нового файла.

Установка модулей из файла

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

pip install -r requirements.txt

Если вы хотите обновить компоненты вместо их повторной установки, используйте команду pip install -U -r requirements.txt.

Как поддерживать requirements.txt в актуальном состоянии

Если вы уже создали файл с зависимостями ранее, но по какой-то причине не обновляли его содержимое, волноваться не стоит. Выполните следующие шаги:

  1. Выведите список устаревших модулей с помощью pip list --outdated.
  2. Обновите выведенные пакеты вручную с помощью pip install -U PackageName или автоматически, используя pip install -U -r requirements.txt.
  3. Убедитесь, что ваша программа работает корректно.
  4. Используйте pip freeze > requirements.txt, чтобы актуализировать содержимое файла с необходимыми внешними зависимостями.

Таким образом вы сможете без проблем обновить информацию об используемых установленных пакетах, даже если в течение определенного времени не занимались управлением зависимостями.

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

Как еще можно создать файл зависимостей?

Можно воспользоваться библиотекой pipreqs, которая сделает все за нас. Её запуск в командной строке сгенерирует файл с зависимостями:

$ pipreqs /home/project/location
Successfully saved requirements file in
/home/project/location/requirements.txt

При этом никто не запрещает вновь обратиться к pip freeze или заполнению документа вручную.

Советы по использованию файла требований

  1. Всегда используйте pip freeze, чтобы поддерживать список внешних зависимостей в актуальном состоянии.
  2. Храните в requirements.txt только необходимые модули и пакеты. В противном случае файл может получиться слишком большим и нечитаемым, а неиспользуемые компоненты будут лишь впустую тратить ресурсы.
  3. Сохраняйте файл с зависимостями в репозитории проекта, чтобы им могли пользоваться другие люди.
  4. Используйте pip install -r requirements.txt, чтобы автоматически установить все модули, необходимые для работы программы.
  5. Поддерживайте список зависимостей в актуальном состоянии, чтобы обеспечить полную работоспособность проекта на различных машинах.

Заключение

Теперь вы знаете, что представляет собой файл requirements.txt в Python и как его создать. Более того, в материале были разобраны преимущества его использования и практические рекомендации.

Ведение файла requirements.txt является неотъемлемой частью управления зависимостями проекта, которая в конечном итоге избавляет от ряда возможных проблем как программистов, так и конечных пользователей.

Спасибо за внимание!

Источник: Learn Python

👉🏻Подписывайтесь на PythonTalk в Telegram 👈🏻

👨🏻‍💻Чат PythonTalk в Telegram💬

🍩 Поддержать канал 🫶