Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

_distutils_hack uses importlib.util.abc.Loader instead of importlib.abc.Loader #2362

Closed
ammaraskar opened this issue Aug 31, 2020 · 3 comments

Comments

@ammaraskar
Copy link

ammaraskar commented Aug 31, 2020

The following error is being thrown on the latest Python built from source:

Traceback (most recent call last):
  File "/root/cpython/Doc/./venv/bin/sphinx-build", line 5, in <module>
    from sphinx.cmd.build import main
  File "/root/cpython/Doc/venv/lib/python3.10/site-packages/sphinx/cmd/build.py", line 23, in <module>
    from sphinx.application import Sphinx
  File "/root/cpython/Doc/venv/lib/python3.10/site-packages/sphinx/application.py", line 28, in <module>
    from sphinx.config import Config
  File "/root/cpython/Doc/venv/lib/python3.10/site-packages/sphinx/config.py", line 22, in <module>
    from sphinx.util import logging
  File "/root/cpython/Doc/venv/lib/python3.10/site-packages/sphinx/util/__init__.py", line 40, in <module>
    from sphinx.util import smartypants  # noqa
  File "/root/cpython/Doc/venv/lib/python3.10/site-packages/sphinx/util/smartypants.py", line 33, in <module>
    from sphinx.util.docutils import __version_info__ as docutils_version
  File "/root/cpython/Doc/venv/lib/python3.10/site-packages/sphinx/util/docutils.py", line 17, in <module>
    from distutils.version import LooseVersion
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 982, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 925, in _find_spec
  File "/root/cpython/Doc/venv/lib/python3.10/site-packages/_distutils_hack/__init__.py", line 74, in find_spec
    return method()
  File "/root/cpython/Doc/venv/lib/python3.10/site-packages/_distutils_hack/__init__.py", line 79, in spec_for_distutils
    class DistutilsLoader(importlib.util.abc.Loader):
AttributeError: module 'importlib.util' has no attribute 'abc'

The curlprit commit is python/cpython@9e09849

It seems to me like the fact that importlib.abc was exported through importlib.util.abc was an implementation detail and this code should be using importlib.abc.Loader directly:

class DistutilsLoader(importlib.util.abc.Loader):

@ammaraskar
Copy link
Author

Pinging @pganssle / @jaraco as the last people to touch this code.

@encukou
Copy link
Contributor

encukou commented Aug 31, 2020

See #2361

@ammaraskar
Copy link
Author

Thanks for the pointer! Sorry for the duplicate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants