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