|
18 | 18 | """
|
19 | 19 |
|
20 | 20 | import argparse
|
| 21 | +import importlib.metadata |
21 | 22 | import inspect
|
22 | 23 | import logging
|
23 | 24 | import os
|
|
28 | 29 | from textwrap import dedent
|
29 | 30 | from typing import Iterable
|
30 | 31 |
|
31 |
| -import pkg_resources |
32 | 32 | from edk2toollib.utility_functions import GetHostInfo, RunCmd, import_module_by_file_name, locate_class_in_module
|
33 | 33 |
|
34 | 34 | from edk2toolext.base_abstract_invocable import BaseAbstractInvocable
|
@@ -203,12 +203,21 @@ def collect_python_pip_info(cls: "Edk2Invocable") -> None:
|
203 | 203 | ver_agg = version_aggregator.GetVersionAggregator()
|
204 | 204 | ver_agg.ReportVersion("Python", cur_py, version_aggregator.VersionTypes.TOOL)
|
205 | 205 | # Get a list of all the packages currently installed in pip
|
206 |
| - pip_packages = [p for p in pkg_resources.working_set] |
| 206 | + try: |
| 207 | + pip_packages = importlib.metadata.distributions() |
| 208 | + except Exception: |
| 209 | + pip_packages = [] |
207 | 210 | # go through all installed pip versions
|
208 | 211 | for package in pip_packages:
|
209 |
| - version = pkg_resources.get_distribution(package).version |
210 |
| - logging.info("{0} version: {1}".format(package.project_name, version)) |
211 |
| - ver_agg.ReportVersion(package.project_name, version, version_aggregator.VersionTypes.PIP) |
| 212 | + try: |
| 213 | + version = package.version |
| 214 | + name = package.metadata["Name"] if "Name" in package.metadata else package.metadata.get("name", None) |
| 215 | + if not name: |
| 216 | + name = package.metadata.get("Summary", "unknown") |
| 217 | + except Exception: |
| 218 | + continue |
| 219 | + logging.info("{0} version: {1}".format(name, version)) |
| 220 | + ver_agg.ReportVersion(name, version, version_aggregator.VersionTypes.PIP) |
212 | 221 |
|
213 | 222 | @classmethod
|
214 | 223 | def collect_rust_info(cls: "Edk2Invocable") -> None:
|
|
0 commit comments