Параметр pip list –format json возвращает инвентаризацию окружения в структурированном виде. Парсить таблицу не нужно.

Сохраните имя и версию

JSON удобно передавать инвентаризатору, который нормализует имена проектов, сравнивает версии между образами и фиксирует источник отчета вместе с интерпретатором.

python -m pip list --format json

Отделите данные от диагностики

Проверяйте код возврата и не смешивайте stdout с дополнительными сообщениями оболочки, иначе валидный JSON превратится в поврежденный документ для следующего шага автоматической обработки и сравнения образов.

Не называйте результат lock-файлом

List отражает установленное состояние, но не вычисляет совместимый набор заново и не сохраняет хэши артефактов, маркеры платформы либо причины выбора зависимостей.

Добавляйте к артефакту версию Python и pip, чтобы одинаковые названия пакетов из разных сред не сливались в один недостоверный снимок.

Полный отчет дает pip inspect. Форматы перечисляет справочник pip list.