Requirements.txt Python: как правильно составить и использовать
Файл requirements.txt в языке программирования Python используется для перечисления всех требуемых пакетов и их версий, необходимых для успешного функционирования проекта. Этот файл позволяет разработчикам легко управлять зависимостями проекта и обеспечивает воспроизводимость его окружения.
Формат файла requirements.txt достаточно простой. Каждая строка файла обычно содержит имя пакета, а также требуемую версию пакета (если необходимо). Например:
numpy==1.18.2
pandas>=1.0.3
matplotlib<=3.2.1
В приведенных примерах мы можем видеть различные способы указания версий пакетов. Выражение == означает точную версию пакета, например, numpy==1.18.2 указывает, что мы требуем именно версию 1.18.2 пакета numpy. Обратите внимание, что установка точной версии пакета может быть полезна, когда нужно совместимое окружение.
Символы >= и <= указывают на сравнение с минимальными и максимальными версиями пакета соответственно. Например, строка pandas>=1.0.3 указывает, что мы требуем версию pandas не ниже 1.0.3.
Создание файла requirements.txt обычно происходит с использованием инструментов виртуальных окружений Python, таких как virtualenv или pipenv. Эти инструменты обеспечивают изоляцию окружения проекта, чтобы избежать конфликтов между различными версиями пакетов в разных проектах.
Пример кода для создания и установки пакетов из файла requirements.txt с использованием инструмента pip:
# Создание виртуального окружения
python3 -m venv myenv
# Активация виртуального окружения (Windows)
myenv\Scripts\activate
# Активация виртуального окружения (Linux/MacOS)
source myenv/bin/activate
# Установка пакетов из файла requirements.txt
pip install -r requirements.txt
Выполнение этих команд создаст виртуальное окружение с именем "myenv" и установит все пакеты, перечисленные в файле requirements.txt.
Кроме того, файл requirements.txt может содержать и другие опции, такие как URL-адрес репозитория, имя пакета в репозитории или адрес файла с пакетом. Это позволяет установить пакеты из источников, отличных от пакетов Python Packaging Index (PyPI).
Вот некоторые примеры расширенного формата requirements.txt:
numpy==1.18.2
pandas>=1.0.3
matplotlib<=3.2.1
django @ https://github.com/django/django/archive/master.zip
my_package @ file:///path/to/my_package.zip
Первые три строки представляют предыдущие примеры установки пакетов из PyPI. Однако последние две строки демонстрируют, как устанавливать пакеты с разных источников. Например, строка django @ https://github.com/django/django/archive/master.zip указывает на установку пакета Django, взятого с репозитория GitHub.
В итоге, файл requirements.txt является удобным инструментом для указания всех требуемых зависимостей в Python проекте. Он помогает в установке правильных версий пакетов и обеспечивает воспроизводимость окружения. Благодаря файлу requirements.txt разработчики могут легко совместно работать и поддерживать окружение проекта без проблем с версионированием пакетов и их зависимостей.