Python 3.15 support for PyTorch
- Dominant language
- Python
- Stars
- 103k
- Forks
- 29.5k
- PR merge metrics
- PR metrics pending
Description
This issue tracks work for enablement of Python 3.15 / 3.15t. Similar to: https://github.com/pytorch/pytorch/issues/156856 (3.14) and https://github.com/pytorch/pytorch/issues/130249 (3.13).
Python 3.15 release schedule: [PEP 790](https://peps.python.org/pep-0790/). **Beta 1 has already been released**, so the ABI is stable enough that packages can start building/publishing 3.15 wheels.
### Updated August 31, 2026
Python 3.15 CI:
- [ ] Migrate 3.14 CI builds -> 3.15
- [ ] Add Python NoGIL (free-threaded) support in CI
Python 3.15 CI & torch.compile:
- [ ] Add support for 3.15 in torch.compile cc @malfet @pytorch/pytorch-dev-infra @albanD @williamwen42
### Current Status — Source build
| OS | 3.15 | 3.15t |
| -- | -- | -- |
| Linux | :white_check_mark: | :white_check_mark: |
| MacOS | :white_check_mark: | :white_check_mark: |
| Windows | :white_check_mark: | :white_check_mark: |
### Current Status — Nightlies and Release branch
| OS | 3.15 | 3.15t |
| -- | -- | -- |
| Linux | :white_check_mark: | :white_check_mark: |
| Linux Aarch64 | :white_check_mark: | :white_check_mark: |
| MacOS | :white_check_mark: | :white_check_mark: |
| Windows | :white_check_mark: | :white_check_mark: |
Breakdown of steps to support Python 3.15:
- [x] PyTorch builds from source on 3.15
- [x] Try wheel Linux builds with Python 3.15
- [x] Nightly `cp315` wheels available for all platforms
- [ ] `torch.compile` support for 3.15
- [x] PyTorch builds from source with free-threaded CPython
- [x] `cp315t` (free-threaded) nightly wheels available
### Python 3.15 CD
- [x] https://github.com/pytorch/pytorch/pull/182954
- [x] https://github.com/pytorch/pytorch/pull/184600
- [x] https://github.com/pytorch/pytorch/issues/184900
- [x] https://github.com/pytorch/pytorch/issues/184901
- [x] Nightly Windows wheels — #190360
- [x] Nightly macOS wheels — #190361
- [x] Nightly aarch64 wheels — pytorch/test-infra#8427
### Landed PRs — build / CD (pytorch/pytorch)
- [x] #182954 [CD] Add CPython-3.15b1
- [x] #184600 Linux py 3.15 wheel builds
- [x] #184829 Add 3.15 triton wheel build
- [x] #184891 Drop cuda-bindings dependency for Python 3.15 wheel builds
- [x] #184906 Skip XPU manywheel builds for Python 3.15
- [x] #185094 Re-enable triton XPU Python 3.15 Linux build
- [x] #185409 [ROCm] Enable Python 3.15 wheel builds
- [x] #186017 Build dynamo with python 3.15
- [x] #186033 [CD] Enable Triton XPU Windows wheel build for Python 3.15 & 3.15t
- [x] #186244 Advertise Python 3.15 support in wheel metadata
- [x] #189722 [ROCm] Fix Python 3.15 manywheel build: redirect pkg-config to target
Python
- [x] #190360 [CD] Enable Python 3.15 / 3.15t nightly wheel builds for Windows
- [x] #190361 [CI] Enable Python 3.15 / 3.15t nightly wheel builds for macOS (arm64)
- [x] #194618 Fix Windows py3.15 builds: constrain Cython < 3.3.0 and bump the cp315
numpy pin
- [x] #194734 Fix macOS py3.15 wheel builds: pin Cython < 3.3.0 and bump the cp315 numpy
pin
- [x] #194741 Bump the Python 3.15 numpy pin to 2.5.2
- [x] #194914 Pin cython < 3.3.0 for the Windows Triton wheel build
### Landed PRs — dynamo / torch.compile (pytorch/pytorch)
- [x] #183491 [dynamo, 3.15] Reconstruct iterators with builtin iter
- [x] #184828 [dynamo, 3.15] Update common constants
- [x] #185403 [dynamo] Fix struct.pack polyfill signature mismatch on Python 3.15
- [x] #185675 [dynamo, 3.15] Implement virtual iterators
- [x] #185682 [dynamo] Fix functools.reduce polyfill signature mismatch on Python 3.15
- [x] #186402 [dynamo, 3.15] Update IMPORT_NAME generation
- [x] #187102 [dynamo, 3.15] Update test error message
- [x] #187103 [dynamo, 3.15] Simplify virtual iterators
- [x] #187221 [dynamo, 3.15] Silence linecache warning
- [x] #189306 [dynamo, 3.15] Fix test_bytecode_utils
- [x] #189592 [dynamo, 3.15] Minimal sentinel support (reverted 07-28, relanded 07-29)
- [x] #190312 [dynamo, 3.15] Fix pygen_yf (reverted 07-28, relanded 07-29)
- [x] #191814 [dynamo, 3.15] Update error messages
- [x] #192149 [dynamo, 3.15] Update test_ir_count
### Landed PRs — pytorch/test-infra
- [x] pytorch/test-infra#8148 Add Python 3.15 and 3.15t to Linux nightly wheel builds
- [x] pytorch/test-infra#8241 Add opt-in Python 3.15 / 3.15t torch-only validation
(Linux x86 + aarch64)
- [x] pytorch/test-infra#8245 PyPI staging: exclude pre-release 3.15 wheels and strip
the 3.15 classifier
- [x] pytorch/test-infra#8357 Fix Python 3.15 smoke tests on Windows and Linux
- [x] pytorch/test-infra#8358 Enable Python 3.15 / 3.15t for macOS wheel builds
### Landed PRs — pytorch/test-infra
- [x] pytorch/test-infra#8148 Add Python 3.15 and 3.15t to Linux nightly wheel builds
- [x] pytorch/test-infra#8241 Add opt-in Python 3.15 / 3.15t torch-only validation (Linux x86 + aarch64)
- [x] pytorch/test-infra#8245 PyPI staging: exclude pre-release 3.15 wheels and strip the 3.15 classifier
- [x] pytorch/test-infra#8357 Fix Python 3.15 smoke tests on Windows and Linux
- [x] pytorch/test-infra#8358 Enable Python 3.15 / 3.15t for macOS wheel builds
- [x] pytorch/test-infra#8427 Enable Python 3.15 / 3.15t by default in the binary build matrix
- [x] pytorch/test-infra#8443 Fix Python 3.15 validation on Linux, Windows and macOS
### Landed PRs — pytorch/vision
- [x] pytorch/vision#9566 Skip torchvision-extra-decoders install on Python 3.15 / 3.15t
### release/2.14 cherry-picks
- [x] #194666 Fix Windows py3.15 builds: constrain Cython < 3.3.0 and bump the cp315 numpy pin
- [x] #194762 Fix macOS py3.15 wheel builds: pin Cython < 3.3.0 and bump the cp315 numpy pin
- [x] #194821 Bump the Python 3.15 numpy pin to 2.5.2
cc @malfet @seemethere @pytorch/pytorch-dev-infra @albanD
### Versions
main
Contributor guide
Assessment
This issue has not been assessed yet.