Параметр pip list –format json возвращает инвентаризацию окружения в структурированном виде. Парсить таблицу не нужно.
Сохраните имя и версию
JSON удобно передавать инвентаризатору, который нормализует имена проектов, сравнивает версии между образами и фиксирует источник отчета вместе с интерпретатором.
python -m pip list --format json
Отделите данные от диагностики
Проверяйте код возврата и не смешивайте stdout с дополнительными сообщениями оболочки, иначе валидный JSON превратится в поврежденный документ для следующего шага автоматической обработки и сравнения образов.
Не называйте результат lock-файлом
List отражает установленное состояние, но не вычисляет совместимый набор заново и не сохраняет хэши артефактов, маркеры платформы либо причины выбора зависимостей.
Добавляйте к артефакту версию Python и pip, чтобы одинаковые названия пакетов из разных сред не сливались в один недостоверный снимок.
Полный отчет дает pip inspect. Форматы перечисляет справочник pip list.