Repository navigation
Description
Describe the bug
The binary wheels on PyPI for 3.3a1 appear to be incompatible with the recently released (Jul 18) 3.15b4, leading to segfaults in the interpreter, at least when using the manylinux x86_64 images (quay.io/pypa/manylinux_2_28_x86_64:latest, Digest: sha256:a61875a2f84cab7df8de222ff12cabc08ff86eb4ad402ac90ba7bdaed9600cca)
Here's a project, running in manylinux that uses Cython in its setup.py. The command was python -m build -w (defaulting to using pip, and PIP_PRE=1 was set, so we got the binary wheels for 3.3a1):
* Creating isolated environment: venv+pip...
* Installing packages in isolated environment:
- Cython >= 3.2.4
- icrs.ip_addr >= 1.5.0
- icrs.sqlite >= 1.9.0
- setuptools_scm<8
- wheel
* Getting build dependencies for wheel...
Fatal Python error: Segmentation fault
Current thread 0x00007ffffe845180 [python] (most recent call first):
File "<frozen importlib._bootstrap>", line 549 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 1033 in exec_module
File "<frozen importlib._bootstrap>", line 915 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1305 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1346 in _find_and_load
File "/tmp/build-env-bm1utflp/lib/python3.15/site-packages/Cython/Build/Cache.py", line 7 in <module>
File "<frozen importlib._bootstrap>", line 549 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 747 in exec_module
File "<frozen importlib._bootstrap>", line 915 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1305 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1346 in _find_and_load
File "/tmp/build-env-bm1utflp/lib/python3.15/site-packages/Cython/Build/Dependencies.py", line 9 in <module>
File "<frozen importlib._bootstrap>", line 549 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 747 in exec_module
File "<frozen importlib._bootstrap>", line 915 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1305 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1346 in _find_and_load
File "/tmp/build-env-bm1utflp/lib/python3.15/site-packages/Cython/Build/__init__.py", line 1 in <module>
File "<frozen importlib._bootstrap>", line 549 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 747 in exec_module
File "<frozen importlib._bootstrap>", line 915 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1305 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1346 in _find_and_load
File "<string>", line 4 in <module>
File "/tmp/build-env-bm1utflp/lib/python3.15/site-packages/setuptools/build_meta.py", line 317 in run_setup
File "/tmp/build-env-bm1utflp/lib/python3.15/site-packages/setuptools/build_meta.py", line 301 in _get_build_requires
File "/tmp/build-env-bm1utflp/lib/python3.15/site-packages/setuptools/build_meta.py", line 333 in get_requires_for_build_wheel
File "/opt/python/cp315-cp315/lib/python3.15/site-packages/pyproject_hooks/_in_process/_in_process.py", line 143 in get_requires_for_build_wheel
File "/opt/python/cp315-cp315/lib/python3.15/site-packages/pyproject_hooks/_in_process/_in_process.py", line 373 in main
File "/opt/python/cp315-cp315/lib/python3.15/site-packages/pyproject_hooks/_in_process/_in_process.py", line 389 in <module>
Current thread's C stack trace (most recent call first):
Binary file "/tmp/build-env-bm1utflp/bin/python", at _Py_DumpStack+0x43 [0x643cc3]
Binary file "/tmp/build-env-bm1utflp/bin/python" [0x65d462]
Binary file "/lib64/libpthread.so.0", at +0x12990 [0x7fffff3b8990]
Binary file "/tmp/build-env-bm1utflp/lib/python3.15/site-packages/Cython/Utils.cpython-315-x86_64-linux-gnu.so", at +0xeb30 [0x7ffffd4a9b30]
Binary file "/tmp/build-env-bm1utflp/lib/python3.15/site-packages/Cython/Utils.cpython-315-x86_64-linux-gnu.so", at +0x9d43 [0x7ffffd4a4d43]
Binary file "/tmp/build-env-bm1utflp/bin/python" [0x4d299c]
Binary file "/tmp/build-env-bm1utflp/bin/python", at PyModule_ExecDef+0x9c [0x4d395c]
Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5fb4c1]
Binary file "/tmp/build-env-bm1utflp/bin/python", at _PyEval_EvalFrameDefault+0x7382 [0x5b4ec2]
Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5bbf6e]
Binary file "/tmp/build-env-bm1utflp/bin/python" [0x47d8a5]
Binary file "/tmp/build-env-bm1utflp/bin/python", at PyObject_CallMethodObjArgs+0x108 [0x47eed8]
Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5fb420]
Binary file "/tmp/build-env-bm1utflp/bin/python", at PyImport_ImportModuleLevelObject+0x11d [0x60072d]
Binary file "/tmp/build-env-bm1utflp/bin/python", at _PyEval_ImportName+0x73 [0x5ac153]
Binary file "/tmp/build-env-bm1utflp/bin/python", at _PyEval_EvalFrameDefault+0x504d [0x5b2b8d]
Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5bbf6e]
Binary file "/tmp/build-env-bm1utflp/bin/python", at PyEval_EvalCode+0xe1 [0x5bc061]
Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5a4c83]
Binary file "/tmp/build-env-bm1utflp/bin/python", at _PyEval_EvalFrameDefault+0x7382 [0x5b4ec2]
Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5bbf6e]
Binary file "/tmp/build-env-bm1utflp/bin/python" [0x47d8a5]
Binary file "/tmp/build-env-bm1utflp/bin/python", at PyObject_CallMethodObjArgs+0x108 [0x47eed8]
Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5fb420]
Binary file "/tmp/build-env-bm1utflp/bin/python", at PyImport_ImportModuleLevelObject+0x11d [0x60072d]
Binary file "/tmp/build-env-bm1utflp/bin/python", at _PyEval_ImportName+0x73 [0x5ac153]
Binary file "/tmp/build-env-bm1utflp/bin/python", at _PyEval_EvalFrameDefault+0x504d [0x5b2b8d]
Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5bbf6e]
Binary file "/tmp/build-env-bm1utflp/bin/python", at PyEval_EvalCode+0xe1 [0x5bc061]
Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5a4c83]
Binary file "/tmp/build-env-bm1utflp/bin/python", at _PyEval_EvalFrameDefault+0x7382 [0x5b4ec2]
Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5bbf6e]
<truncated rest of calls>
Extension modules: cython.cimports.libc.math, Cython.Utils (total: 2)
ERROR Backend subprocess exited when trying to invoke get_requires_for_build_wheel
Setting PIP_NO_BINARY=cython solved the problem. This previously worked with 3.15b3.
This was seen across multiple different proprietary projects so there's no common code snippet I can provide. But I can attempt to answer questions.
Maybe yank those wheels for now?
Code to reproduce the behaviour:
# example codeExpected behaviour
No response
OS
manylinux
Python version
3.15b4
Cython version
3.3.0a1
Additional context
No response
Activity
da-woods commentedon Jul 21, 2026
Thanks. Yes it probably is too early to be releasing binary wheels for Python 3.15. I think it's only the release candidates where they promise any kind of compatibility.
So I agree we should remove them. I don't think I can do it myself
scoder commentedon Jul 21, 2026
I can remove the Py3.15 wheels later today.
I was planning to prepare a new release since a couple of days already. Will see that I get it done soon.
scoder commentedon Jul 21, 2026
I deleted the Py315 wheels. Installations should fall back to the non-binary Python wheel now.