Как получить пакеты из requirements.txt с закрепленной последней версией

pip install -r requirements.txt --dry-run --no-deps --ignore-installed | tail -n1 | tr ' ' '\n' | tail -n+3 | sed -e "s/\(.*\)-/\1==/"


Эта команда извлекает пакеты из файла requirements.txt с закрепленными последними версиями. Она выполняет следующие действия:

1. pip install -r requirements.txt --dry-run --no-deps --ignore-installed: Симулирует установку пакетов из файла requirements.txt без установки их фактически. Это позволяет получить информацию о версиях пакетов, которые будут установлены.

2. tail -n1: Возвращает только последнюю строку вывода, которая содержит информацию о версии.

3. tr ' ' '\n': Заменяет пробелы на символ новой строки, чтобы разделить строки на отдельные слова.

4. tail -n+3: Возвращает строки начиная с третьей, игнорируя первые две строки, которые содержат неинтересную информацию.

5. sed -e "s/\(.*\)-/\1==/": Удаляет дефис после имени пакета и добавляет «==», чтобы закрепить последнюю версию пакета.

Эта команда полезна, когда вы хотите получить список пакетов из requirements.txt с явно указанными версиями для создания виртуального окружения или для документации зависимостей проекта. Альтернативой может быть использование pip freeze, но он может вернуть текущие установленные версии пакетов, что не всегда желательно.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *