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, но он может вернуть текущие установленные версии пакетов, что не всегда желательно.
