-
-
Notifications
You must be signed in to change notification settings - Fork 189
Python 3.12: ModuleNotFoundError: No module named 'setuptools' #620
Description
The second and final Python 3.12 release candidate is out! 🚀
Call to action
We strongly encourage maintainers of third-party Python projects to prepare their projects for 3.12 compatibilities during this phase, and where necessary publish Python 3.12 wheels on PyPI to be ready for the final release of 3.12.0.
However, testing on Python 3.12.0rc2:
❯ tox -e py312
.pkg: install_requires> python -I -m pip install 'setuptools>=40.8.0' wheel
.pkg: _optional_hooks> python /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: get_requires_for_build_sdist> python /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: get_requires_for_build_wheel> python /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: install_requires_for_build_wheel> python -I -m pip install wheel
.pkg: prepare_metadata_for_build_wheel> python /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: build_sdist> python /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
py312: install_package> python -I -m pip install --force-reinstall --no-deps /private/tmp/dill/.tox/.tmp/package/1/dill-0.3.2.dev0.tar.gz
py312: commands[0]> .tox/py312/bin/python setup.py build
Traceback (most recent call last):
File "/private/tmp/dill/setup.py", line 19, in <module>
from setuptools import setup
ModuleNotFoundError: No module named 'setuptools'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/private/tmp/dill/setup.py", line 22, in <module>
from distutils.core import setup
ModuleNotFoundError: No module named 'distutils'
py312: exit 1 (0.02 seconds) /private/tmp/dill> .tox/py312/bin/python setup.py build pid=92651
.pkg: _exit> python /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
py312: FAIL code 1 (3.53=setup[3.52]+cmd[0.02] seconds)
evaluation failed :( (3.57 seconds)This will be due to the setuptools changes in Python 3.12:
easy_install,pkg_resources,setuptoolsanddistutilsare no longer provided by default in environments created withvenvor bootstrapped withensurepip, since they are part of the setuptools package. For projects relying on these at runtime, thesetuptoolsproject should be declared as a dependency and installed separately (typically, using pip).
See also gitpython-developers/GitPython#1640 (comment) for more advice.