diff --git a/changelog.d/3685.change.rst b/changelog.d/3685.change.rst new file mode 100644 index 0000000000..839898d388 --- /dev/null +++ b/changelog.d/3685.change.rst @@ -0,0 +1 @@ +Fix improper usage of deprecated/removed ``pkgutil`` APIs in Python 3.12+. diff --git a/pkg_resources/__init__.py b/pkg_resources/__init__.py index bba775b908..676e34bded 100644 --- a/pkg_resources/__init__.py +++ b/pkg_resources/__init__.py @@ -2187,10 +2187,10 @@ def resolve_egg_link(path): return next(dist_groups, ()) -register_finder(pkgutil.ImpImporter, find_on_path) +if hasattr(pkgutil, 'ImpImporter'): + register_finder(pkgutil.ImpImporter, find_on_path) -if hasattr(importlib_machinery, 'FileFinder'): - register_finder(importlib_machinery.FileFinder, find_on_path) +register_finder(importlib_machinery.FileFinder, find_on_path) _declare_state('dict', _namespace_handlers={}) _declare_state('dict', _namespace_packages={}) @@ -2344,11 +2344,11 @@ def file_ns_handler(importer, path_item, packageName, module): return subpath -register_namespace_handler(pkgutil.ImpImporter, file_ns_handler) -register_namespace_handler(zipimport.zipimporter, file_ns_handler) +if hasattr(pkgutil, 'ImpImporter'): + register_namespace_handler(pkgutil.ImpImporter, file_ns_handler) -if hasattr(importlib_machinery, 'FileFinder'): - register_namespace_handler(importlib_machinery.FileFinder, file_ns_handler) +register_namespace_handler(zipimport.zipimporter, file_ns_handler) +register_namespace_handler(importlib_machinery.FileFinder, file_ns_handler) def null_ns_handler(importer, path_item, packageName, module):