Python, requirements.txt

12.11.2021

Файл со списком пакетов, необходимых для работы Python-приложения, называют файлом требований, requirements-файлом или просто реками. Обычно такой файл хранится в корневой директории исходного кода приложения и называется requirements.txt.

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

pip freeze > requirements.txt

Для установки пакетов из requirements-файла нужно воспользоваться ключом r команды pip:

pip install -r requirements.txt

Кроме названий пакетов и номеров их версий в таких файлах могут (и должны) содержаться следующие полезные штуки.

Комплексные номера версий пакетов

pylint              # последняя актуальная версия
pylint == 2.1.3     # конкретная версия
pylint >= 2.1.1     # минимально возможная версия
pylint != 2.1.1     # любая версия кроме указанной
pylint ~= 2.1       # совместимый релиз; в примере последняя версия 2.1.*

Комментарии

# Линтер для Python.
pylint == 2

Ссылки на другие requirements-файлы

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

Допустим у нас есть requirements.txt:

flask
numpy
pandas
tensorflow

Для разработки нам нужны пакеты с линтером (pylint) и тестами (pytest). В таком случае можно создать файл requirements-dev.txt, в который осуществить инклуд основного файла с требованиями:

# Подключение основного файла со списком пакетов.
-r requirements.txt

pylint
pytest

Подробнее о работе с requirements-файлами и pip в целом.