Я пытаюсь выполнить аудит проекта Python с большим количеством зависимостей, и, хотя я могу вручную просмотреть домашнюю страницу/условия лицензии каждого проекта, похоже, что большинство пакетов OSS уже должны содержать имя и версию лицензии в своих метаданных.Может ли pip (или setuptools, распространять и т. Д.) Отображать лицензию, используемую каждым установленным пакетом?
К сожалению, я не могу найти какие-либо опции в pip или easy_install, чтобы перечислить больше, чем имя пакета и установленную версию (через замораживание контура).
У кого-нибудь есть указатели на инструмент для отображения метаданных лицензии для пакетов Python?
Это прекрасно работает! Оказывается, что pkg_resources.working_set также является итерабельным, что полезно для моей ситуации (перечисление всех лицензий сразу). –
Вы можете использовать встроенный пакет 'mail' для анализа содержимого PKG-INFO, который немного более надежный чем использование разделения на двоеточие.Сначала 'import email.parser', затем настройте' parser = email.parser.HeaderParser() ', а затем' pkg_info = parser.parsestr ('\ n'.join (package.get_metadata_lines (' PKG-INFO '))) ', который дает вам сообщение, из которого вы можете получить' pkg_info ['License'] '. – clj
Отлично работает, заменяя 'PKG-INFO' на' METADATA' и обнаруживая некоторые ошибки здесь и там. – Adversus