pip
, необходимо:
requirements.txt
: Он содержит список всех необходимых зависимостей и их версий. Например: requests==2.28.1
, numpy>=1.23.0
requirements.txt
: Используйте команду pip install -r requirements.txt
.requirements.txt
командой pip freeze > requirements.txt
. Это гарантирует, что при повторной установке зависимостей будут использованы именно эти версии.pip-tools
для более сложного управления зависимостями.
Для автоматического управления версиями зависимостей в проекте на Python с использованием pip
, применяется файл requirements.txt
(или pyproject.toml
с использованием Poetry или PDM, но рассмотрим requirements.txt
как базовый вариант).
Создание requirements.txt
:
Самый распространенный способ создать requirements.txt
- использовать команду pip freeze
. Эта команда выводит список установленных пакетов и их версий в формате, совместимом с pip
. Сохраните вывод этой команды в файл requirements.txt
:
pip freeze > requirements.txt
Также можно создать requirements.txt
вручную, перечислив зависимости и их версии:
requests==2.28.1
Flask==2.2.2
SQLAlchemy==1.4.41
Установка зависимостей из requirements.txt
:
Чтобы установить все зависимости, перечисленные в файле requirements.txt
, используйте команду:
pip install -r requirements.txt
Обновление зависимостей:
Если вам нужно обновить какую-то зависимость, вы можете обновить её с помощью pip install --upgrade
:
pip install --upgrade requests
После обновления зависимости обновите и файл requirements.txt
, запустив pip freeze > requirements.txt
.
Замораживание версий (Pinning):
В requirements.txt
крайне рекомендуется "замораживать" версии пакетов (указывать точные версии с помощью ==
). Это гарантирует, что при развертывании проекта на другом компьютере или в другом окружении будут установлены именно те версии пакетов, с которыми проект был протестирован.
Оптимизация requirements.txt
:
Содержимое requirements.txt
стоит регулярно пересматривать. Удаляйте ненужные пакеты и проверяйте актуальность версий. Важно понимать, какие пакеты действительно необходимы для работы вашего проекта, и не включать в requirements.txt
лишние зависимости.
Альтернативы:
Современные инструменты, такие как Poetry и PDM, предлагают более продвинутые способы управления зависимостями, включая управление виртуальными окружениями, разрешение конфликтов зависимостей и воспроизводимые сборки. Они используют файлы pyproject.toml
и poetry.lock
(или pdm.lock
) для управления зависимостями и их версиями.
Пример использования requirements.txt
в CI/CD:
В пайплайне CI/CD (Continuous Integration/Continuous Deployment) обычно первым шагом является установка зависимостей из requirements.txt
:
# Пример в .gitlab-ci.yml
before_script:
- pip install -r requirements.txt