Closed jonwright closed 2 years ago
Hi Jon,
This is a known issue ... python 3.12 won't ship distutils
any more, in couple of years from now.
Since we depend on numpy.distutils
which depends on distutils
, we are currently waiting until numpy and scipy find a solution for building extensions in a modular way. Scipy is considering to move to Meson/Ninja, for numpy it is less clear.
The only alternative I see is removing the modularized build from extensions and recreate a monolitic setup.py with thousands of LOC, which looks to me not only as a regression but also a burden to maintains.
If I remember well, limiting the version of setuptools <60 mitigates the problem for now (i.e. not future proof).
I am surprised wheels were not used.
To reproduce the bug:
python3 -m venv testfabio
source testfabio/bin/activate
pip install --upgrade pip setuptools
pip install --no-use-pep517 fabio --no-binary :all:
if setuptools is limited to version <60, it goes one step further and crashes with cython not (yet) installed.
Since the cython
build dependency is described in the pyproject.toml
(pep518) I suspect that the --no-use-pep517
disables the read of this file. Why is this option needed ?
So I see two options for your bug:
pip install cython
in your CI configuration file.I'll upgrade the requirements.txt to ensure version<60 of setuptools is used.
Thanks! The pep517 business was to allow editable installs, waiting for 660 I think. Maybe better to drop those for now. The CI is using xcode 11.2 which says python 3.7, so maybe upgrading that would get a wheel instead.
This just popped up in my CI for ImageD11. Is it because I have the --no-use-pep517 or is there something more sinister going on? Seems to be a new feature of pip ...