Skip to content

Python 3.12/PEP 632 compatibility (distutils removal) #89

@twm

Description

@twm

The distutils package was removed in Python 3.12, per PEP 632. It is transitionally provided by setuptools, but this is deprecated.

Incremental contains distutils imports. Its tests fail on Python 3.12 when setuptools' vendored distutils is disabled:

$ SETUPTOOLS_USE_DISTUTILS=stdlib TOX_TESTENV_PASSENV=SETUPTOOLS_USE_DISTUTILS tox -e tests-py312
...
tests-py312 run-test: commands[5] | coverage run -p examplesetup.py install
Traceback (most recent call last):
  File ".../incremental/examplesetup.py", line 1, in <module>
    from setuptools import setup
  File ".../incremental/.tox/tests-py312/lib/python3.12/site-packages/setuptools/__init__.py", line 9, in <module>
    import distutils.core
ModuleNotFoundError: No module named 'distutils'
.../incremental/.tox/tests-py312/lib/python3.12/site-packages/coverage/inorout.py:503: CoverageWarning: Module incremental was never imported. (module-not-imported)
  self.warn(f"Module {pkg} was never imported.", slug="module-not-imported")
.../incremental/.tox/tests-py312/lib/python3.12/site-packages/coverage/control.py:888: CoverageWarning: No data was collected. (no-data-collected)
  self._warn("No data was collected.", slug="no-data-collected")
ERROR: InvocationError for command .../incremental/.tox/tests-py312/bin/coverage run -p examplesetup.py install (exited with code 1)
__________________________________________________________________ summary ___________________________________________________________________
ERROR:   tests-py312: commands failed

The imports should be updated to reference the equivalent bits of setuptools.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions