How to reproduce the problem
I noticed this problem while running pip-compile to resolve a dependency graph that includes seqeval, shortly after the 21 Feb 2025 release of setuptools-scm 8.2
Attempt to install seqeval==1.2.2 into a Python environment with setuptools<61, such as a fresh Python 3.8 virtual environment (which will have setuptools 56.0).
$ python3 -V
3.8.14
$ python3 -m venv repro_venv
$ ./repro_venv/bin/python3 -m pip show setuptools | grep Version
Version: 56.0.0
$ ./repro_venv/bin/python3 -m pip install --no-cache seqeval==1.2.2
$ ./repro_venv/bin/python3 -m pip install --no-cache seqeval==1.2.2
Collecting seqeval==1.2.2
Downloading seqeval-1.2.2.tar.gz (43 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 43.6/43.6 KB 5.4 MB/s eta 0:00:00
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [73 lines of output]
WARNING: The wheel package is not available.
WARNING: The wheel package is not available.
WARNING: The wheel package is not available.
WARNING: The wheel package is not available.
WARNING: The wheel package is not available.
/tmp/pip-install-u8qnlzk2/seqeval_421dc18d836d45ed8b8fc176526d3cf6/.eggs/setuptools_scm-8.2.0-py3.8.egg/setuptools_scm/_integration/setuptools.py:31: RuntimeWarning:
ERROR: setuptools==56.0.0 is used in combination with setuptools-scm>=8.x
Your build configuration is incomplete and previously worked by accident!
setuptools-scm requires setuptools>=61
Suggested workaround if applicable:
- migrating from the deprecated setup_requires mechanism to pep517/518
and using a pyproject.toml to declare build dependencies
which are reliably pre-installed before running the build tools
warnings.warn(
WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section'
Traceback (most recent call last):
File "/tmp/pip-install-u8qnlzk2/seqeval_421dc18d836d45ed8b8fc176526d3cf6/.eggs/setuptools_scm-8.2.0-py3.8.egg/setuptools_scm/_integration/pyproject_reading.py", line 36, in read_pyproject
section = defn.get("tool", {})[tool_name]
KeyError: 'setuptools_scm'
running egg_info
creating /tmp/pip-pip-egg-info-fx_p_ap7/seqeval.egg-info
writing /tmp/pip-pip-egg-info-fx_p_ap7/seqeval.egg-info/PKG-INFO
writing dependency_links to /tmp/pip-pip-egg-info-fx_p_ap7/seqeval.egg-info/dependency_links.txt
writing requirements to /tmp/pip-pip-egg-info-fx_p_ap7/seqeval.egg-info/requires.txt
writing top-level names to /tmp/pip-pip-egg-info-fx_p_ap7/seqeval.egg-info/top_level.txt
writing manifest file '/tmp/pip-pip-egg-info-fx_p_ap7/seqeval.egg-info/SOURCES.txt'
Traceback (most recent call last):
...
Note these lines in particular:
ERROR: setuptools==56.0.0 is used in combination with setuptools-scm>=8.x
Your build configuration is incomplete and previously worked by accident!
setuptools-scm requires setuptools>=61
The most straightforward fix to the issue is to add a pyproject.toml declaring setuptools as the build backend, and build isolation will ensure that the building venv ends up with a newer copy of setuptools.
Your Environment
- Operating System: Ubuntu 22.04
- Python Version: Python 3.8
- Package Version: 1.2.2
How to reproduce the problem
I noticed this problem while running
pip-compileto resolve a dependency graph that includesseqeval, shortly after the 21 Feb 2025 release ofsetuptools-scm8.2Attempt to install
seqeval==1.2.2into a Python environment withsetuptools<61, such as a fresh Python 3.8 virtual environment (which will havesetuptools56.0).$ ./repro_venv/bin/python3 -m pip install --no-cache seqeval==1.2.2 Collecting seqeval==1.2.2 Downloading seqeval-1.2.2.tar.gz (43 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 43.6/43.6 KB 5.4 MB/s eta 0:00:00 Preparing metadata (setup.py) ... error error: subprocess-exited-with-error × python setup.py egg_info did not run successfully. │ exit code: 1 ╰─> [73 lines of output] WARNING: The wheel package is not available. WARNING: The wheel package is not available. WARNING: The wheel package is not available. WARNING: The wheel package is not available. WARNING: The wheel package is not available. /tmp/pip-install-u8qnlzk2/seqeval_421dc18d836d45ed8b8fc176526d3cf6/.eggs/setuptools_scm-8.2.0-py3.8.egg/setuptools_scm/_integration/setuptools.py:31: RuntimeWarning: ERROR: setuptools==56.0.0 is used in combination with setuptools-scm>=8.x Your build configuration is incomplete and previously worked by accident! setuptools-scm requires setuptools>=61 Suggested workaround if applicable: - migrating from the deprecated setup_requires mechanism to pep517/518 and using a pyproject.toml to declare build dependencies which are reliably pre-installed before running the build tools warnings.warn( WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section' Traceback (most recent call last): File "/tmp/pip-install-u8qnlzk2/seqeval_421dc18d836d45ed8b8fc176526d3cf6/.eggs/setuptools_scm-8.2.0-py3.8.egg/setuptools_scm/_integration/pyproject_reading.py", line 36, in read_pyproject section = defn.get("tool", {})[tool_name] KeyError: 'setuptools_scm' running egg_info creating /tmp/pip-pip-egg-info-fx_p_ap7/seqeval.egg-info writing /tmp/pip-pip-egg-info-fx_p_ap7/seqeval.egg-info/PKG-INFO writing dependency_links to /tmp/pip-pip-egg-info-fx_p_ap7/seqeval.egg-info/dependency_links.txt writing requirements to /tmp/pip-pip-egg-info-fx_p_ap7/seqeval.egg-info/requires.txt writing top-level names to /tmp/pip-pip-egg-info-fx_p_ap7/seqeval.egg-info/top_level.txt writing manifest file '/tmp/pip-pip-egg-info-fx_p_ap7/seqeval.egg-info/SOURCES.txt' Traceback (most recent call last): ...Note these lines in particular:
The most straightforward fix to the issue is to add a
pyproject.tomldeclaringsetuptoolsas the build backend, and build isolation will ensure that the building venv ends up with a newer copy ofsetuptools.Your Environment