diff --git a/news/8676.feature b/news/8676.feature new file mode 100644 index 000000000..f8da963f6 --- /dev/null +++ b/news/8676.feature @@ -0,0 +1,2 @@ +Improve error message friendliness when an environment has packages with +corrupted metadata. diff --git a/src/pip/_internal/operations/check.py b/src/pip/_internal/operations/check.py index 5714915bc..0d5963295 100644 --- a/src/pip/_internal/operations/check.py +++ b/src/pip/_internal/operations/check.py @@ -48,8 +48,8 @@ def create_package_set_from_installed(**kwargs): name = canonicalize_name(dist.project_name) try: package_set[name] = PackageDetails(dist.version, dist.requires()) - except RequirementParseError as e: - # Don't crash on broken metadata + except (OSError, RequirementParseError) as e: + # Don't crash on unreadable or broken metadata logger.warning("Error parsing requirements for %s: %s", name, e) problems = True return package_set, problems