-
-
Notifications
You must be signed in to change notification settings - Fork 25.8k
MAINT Add Python 3.13 wheels #29789
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
MAINT Add Python 3.13 wheels #29789
Conversation
docker container run \ | ||
--rm scikit-learn/minimal-windows \ | ||
powershell -Command "python -m pip install -c 'import sklearn; sklearn.show_versions()'" |
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.
This trigger the following error:
ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'import sklearn; sklearn.show_versions()'
Is there an issue with the quotes
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.
Oh no there is a pip isntall
in the middle.
Let me check this PR since that we merged 1.5.2 now and we can have this PR for the |
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.
LGTM. Thanks @lesteve
.github/workflows/wheels.yml
Outdated
platform_id: manylinux_x86_64 | ||
manylinux_image: manylinux2014 | ||
# TODO: remove next line when Python 3.13 is released | ||
prerelease_pythons: True |
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.
prerelease_pythons: True |
With cibuildwheel v2.20.0, the prerelease_python flag is not required anymore: https://cibuildwheel.pypa.io/en/stable/changelog/#v2200
CPython 3.13 wheels are now built by default - without the CIBW_PRERELEASE_PYTHONS flag.
(We'll still need to keep windows because of the -rc
logic when building the image)
Probably I should have not done this, but while I worked on this, I found the Dockerfile on Windows a pain to work with, especially for adding custom logic (which I needed to decide to use pandas-dev on Python 3.13) and also an additional layer to pass environment variables to. This probably doesn't follow Docker best practices but I found constructing the Docker image in a bash script through My biases are:
Oh and the Python 3.13 free-threaded failure is due to #29864 |
I recently tried this and ended up just dual booting Windows.
I am okay with this. The only reason we use the minimal windows version is to make sure the vendored References:
|
A bit of a side-topic and not related to this PR, but for removing |
Two approvals and the last commit with |
We statically link to avoid crashes with mixed runtimes: matplotlib/matplotlib#28551 |
One of the complications due to the fact that pandas does not have a release with Python 3.13 wheels (in contrary to numpy and scipy). For now I used pandas-dev to test the wheels.
The other complication is due to our custom Windows setup (we build a minimal Windows image to avoid relying on system OpenMP #18802) and run the tests in this image which has a few quirks (for example cibuildwheel does not know about it and install CIBW_TEST_REQUIRES inside the host).
Close #29292.