Add NumPy upper-bound pin for Python 3.14 compatibility#1170
Add NumPy upper-bound pin for Python 3.14 compatibility#1170FaryalRizwaan wants to merge 1 commit intoopencv:4.xfrom
Conversation
|
This PR correctly adds a Python 3.14–specific NumPy constraint and resolves the missing dependency case described in #1165. |
|
Thanks for the review, @ayushrajput6128 ! Glad to hear the environment markers look correct to you. |
|
Versions should not be overly constrained, please see #1140 |
|
Release 4.13.0.90, which supports Python 3.14, is not yet in PyPI. Is there any scheduled date for releasing it under PyPI? |
rgommers
left a comment
There was a problem hiding this comment.
This PR is definitely incorrect. Note that exact pins for numpy are no longer needed since numpy 1.25.0 (see https://numpy.org/devdocs/release/1.25.0-notes.html#compiling-against-the-numpy-c-api-is-now-backwards-compatible-by-default).
A more reasonable change, which would be an actual improvement, would be to change "==2.1.3"to">=2.1.3"`.
|
And that approach was already taken in gh-1121 (still open), so I'd just close this PR. |
This PR adds a Python 3.14–specific NumPy version constraint in pyproject.toml to fix dependency resolution failures when installing opencv-python on Python 3.14.
Issue: #1165 – Installation fails on Python 3.14 because no compatible NumPy version is selected during build dependency resolution.
Changes
Added an environment marker in pyproject.toml to require numpy>=2.1.3,<2.2 for python_version >= '3.14'.
Preserves existing dependency behavior for Python 3.8–3.13.
No changes to setup.py; the fix is fully compliant with PEP 518 and modern packaging standards.
Testing
Verified dependency resolution using pip install --dry-run -e ..
Confirmed that the new marker does not affect installation on supported Python versions (3.8–3.13).
The pinned NumPy version (2.1.3) is published on PyPI and declares Python 3.14 support via classifiers.
This minimal, forward-compatible change ensures opencv-python remains installable as Python 3.14 adoption begins.