requirements.txt
- это текстовый файл, содержащий список Python пакетов и их версий, необходимых для проекта.
Используется для воспроизводимости окружения.
pip
для работы с ним:
pip install -r requirements.txt
- устанавливает все пакеты, перечисленные в файле.pip freeze > requirements.txt
- создает файл requirements.txt
, содержащий список установленных пакетов и их версий в текущем окружении.
requirements.txt
- это простой текстовый файл, который содержит список всех Python-пакетов (и их версий), необходимых для конкретного проекта. Он служит для точного воспроизведения окружения разработки и развертывания. Использование requirements.txt
позволяет гарантировать, что все, кто работает с проектом (разработчики, тестировщики, операторы) используют одни и те же версии пакетов, избегая проблем совместимости и ошибок, связанных с расхождениями в версиях зависимостей.
Как использовать requirements.txt
с pip
:
requirements.txt
:
Чтобы создать файл requirements.txt
на основе уже установленных пакетов в вашем виртуальном окружении (рекомендуется использовать виртуальные окружения!), используйте команду:
pip freeze > requirements.txt
Эта команда перенаправляет вывод команды pip freeze
(которая перечисляет все установленные пакеты и их версии) в файл requirements.txt
. Если вы хотите включить в requirements.txt
только пакеты, которые являются прямыми зависимостями вашего проекта (исключая транзитивные зависимости, т.е. зависимости зависимостей), можно использовать инструмент вроде pipreqs
.
requirements.txt
:
Чтобы установить все пакеты, перечисленные в requirements.txt
, используйте команду:
pip install -r requirements.txt
Опция -r
указывает pip
читать список пакетов из указанного файла. pip
установит все пакеты и их указанные версии (если они указаны), создавая соответствующее окружение. Убедитесь, что вы активировали ваше виртуальное окружение перед выполнением этой команды.
В requirements.txt
вы можете указывать точные версии пакетов, используя различные операторы:
==
: Указывает точную версию, например, requests==2.28.1
.>=
: Указывает минимальную версию, например, numpy>=1.20
.<=
: Указывает максимальную версию, например, pandas<=1.5
.>
и <
: Указывают строгие минимальные и максимальные версии.~=
: "Совместимый релиз". Например, Django~=3.2
означает, что будет установлена последняя версия Django из ветки 3.2, но не 4.0 и выше. Это полезно для обеспечения совместимости с обратно совместимыми исправлениями ошибок и функций.
Рекомендуется использовать точные версии (==
) для production-окружений, чтобы обеспечить воспроизводимость. Для разработки можно использовать более гибкие спецификации (>=
, <=
, ~=
), чтобы получать обновления пакетов.
Если вы хотите обновить пакеты в вашем виртуальном окружении и обновить requirements.txt
, сначала обновите пакеты с помощью pip install --upgrade <пакет>
, а затем обновите requirements.txt
с помощью pip freeze > requirements.txt
.
Вы можете добавлять комментарии в файл requirements.txt
, начиная строку с символа #
. Это полезно для документирования причин использования конкретной версии пакета или для временного исключения пакета из установки.
В целом, requirements.txt
- это важный инструмент для управления зависимостями в Python-проектах, обеспечивающий воспроизводимость, упрощающий развертывание и предотвращающий конфликты версий.