-
Notifications
You must be signed in to change notification settings - Fork 862
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support python 3.12 #1012
base: 4.x
Are you sure you want to change the base?
Support python 3.12 #1012
Conversation
@@ -9,5 +9,5 @@ requires = [ | |||
"numpy>=2.0.0; python_version>='3.9'", | |||
"pip", | |||
"scikit-build>=0.14.0", | |||
"setuptools==59.2.0", | |||
"setuptools>=59.2.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I normally wouldn't recommend pinning setuptools on an upperbound unless you have an explicit reason, but v71 changed how it vendors its dependencies in a major way. https://setuptools.pypa.io/en/latest/history.html#v71-0-0
Where it'll prefer already installed deps over its vendors. This can cause issues if the environment has an older version of a dep installed (which wasn't problematic before for setuptools, as it'd use it's own vendor anyway).
Note that running pip install setuptools[core]
would install the necessary dependencies along with setuptools.
Given the various distributions and dockerization of opencv-python, it might be warranted to progressively relax this pin by first going to:
"setuptools>=59.2.0", | |
"setuptools>=59.2.0,<71.0.0", |
Leaving this to the maintainers whether that's a concern 😄
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm reticent to introduce an upper-bound with neither any observed problems nor a plan to fix any anticipated problems. But I'm happy to commit the suggestion if maintainers agree it's prudent.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah same, figured I'd at least let it be known.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bryankaplan Done, thank you
I tried installing OpenCV on macOS in a virtual environment, with the suggestion by @Avasam of
I'm on macOS 11.7.10, Python 3.12.5. I upgraded to Python 3.12.6 and have the same issue. I tried in a new virtual environment, and I tried it twice. |
The option |
@mm3509 I'm glad you were able to install opencv-python. N.B. Installation under python 3.11 always has worked. This patch aims to support 3.12. It will be helpful to determine whether this fix works under macOS, and if not what does. |
Thank you Bryan. You can count on me to test any patches on macOS :) At the moment, I am out of ideas for how to make it work. |
FYI this PR does appear to work for getting opencv-python to install (in Home Assistant's "wheels" container which is based on Alpine Linux and Python 3.13); took me 35 minutes on a Intel CPU from 2021.
|
@bryankaplan or @asmorkalov , could you retrigger this PR's CI? (closing & reopening should work), I don't recall the reason for test failure and I'm guessing it doesn't have to do with this PR. Even if this doesn't fix everyone's issues. It should be an objective improvement. |
Currently, opencv-python fails to build under python 3.12. This patch fixes that problem by permitting the use of any setuptools>=59.2.0, rather than mandating that specific version. This patch fixes opencv#988. See discussion there for details. I have tested by successfully installing opencv-python.
11cb9fc
to
218a392
Compare
Same failure as before:
|
Ah so just opencv's self-hosted runenrs being unavailable ( |
Currently, opencv-python fails to build under python 3.12. This patch fixes that problem by permitting the use of any setuptools>=59.2.0, rather than mandating that specific version.
This patch fixes #988. See discussion there for details.
I have tested by successfully installing opencv-python.