Python 3.16.0 alpha 1 is now available!

This is an early developer preview of Python 3.16

What’s new in Python 3.16?

There’s plenty still to come in Python 3.16, but its first alpha is ready to try! Python 3.16.0a1 is the first of seven planned alpha releases.

During the alpha phase, features may be added up until the start of the beta phase (May 4, 2027) and, if necessary, may be modified or deleted up until the release candidate phase (July 27, 2027). The final release is planned for October 5, 2027. Please keep in mind that this is a preview release and its use is not recommended for production environments.

See What’s new in Python 3.16 for changes so far.

(Hey, fellow core team member, if there’s a feature you’d like highlighted in a future announcement, let Savannah know.)

If you maintain a library or application, please try it with this alpha and let us know how it goes. Please report Python bugs on the CPython issue tracker.

The next alpha, Python 3.16.0a2, is scheduled for November 10, 2026. The full schedule is in PEP 826.

More resources

And now for something completely different

For Python 3.16, this section will host the Python 3.16 Film Festival: one film pairing for each release, from the first alpha to the final version.

Building CPython is a team sport. Every release reflects the time, skill, and dedication of a community that cares deeply about Python and the people who use it. In that spirit, the festival will celebrate collaboration and craftsmanship: the care people put into their work, and what they can make together.

The Python 3.16 Film Festival opens with Ratatouille (2007). Remy’s passion for cooking and his partnership with Linguini make it a fitting place to begin.

Great cooking is not for the faint of heart. You must be imaginative. Strong-hearted. You must try things that may not work. And you must not let anyone define your limits because of where you come from. Your only limit is your soul. What I say is true: anyone can cook, but only the fearless can be great.

— Auguste Gusteau, Ratatouille (2007)

Enjoy the new release

Thank you to everyone who has contributed code, reviewed changes, written documentation, tested builds, and reported bugs. All of that work helps make Python and its releases possible. Please consider supporting Python by volunteering your time or encouraging your organisation to support the Python Software Foundation.

Happy testing!

Regards from beautiful Washington state,

Your release team,
Savannah Ostrowski @savannahostrowski
Ned Deily @nad
Steve Dower @steve.dower

30 Likes

One significant change in this release that’s probably going to upset some people is the complete lack of the legacy installers for Windows. Here’s my bullet point summary of how things are now:

  • the Python install manager is the only supported way to install Python on Windows - py install 3.16
  • our default index file is signed and validated every time the install manager installs from it, and it contains hashes of the packages that are validated every time they’re extracted
  • the “Windows release manifest” file listed on the download page is not required to install Python, but can be used to locate and verify hashes for the packages that are part of that release
  • the packages linked by the release manifest can be extracted and run, nothing else needed (assuming you just want to run Python, and don’t want shortcuts/etc.)
  • the release manifest on the download page has a .sigstore file for those who want to verify using that
  • the format of the manifest is the same as our download index, so you can py install --source <URL> 3.16 if you want, or just parse it directly
  • most users will never need the Windows release manifest file, and listing the 10-ish files individually would just be even more confusing

So in short, most users shouldn’t get anything from the download page anymore, but if they really don’t want to use our tool, they can find downloadable files through the manifest.

I expect we’ll still be having to explain the change repeatedly, though. PEP 773 is the background, and it has links to the discussions, so feel free to refer people to those rather than trying to repeatedly justify it.

8 Likes

A nice theme for the releases.

5 Likes

That broke actions/python-versions, and that’s why there’s no Python 3.16.0a1 available yet to actions/setup-python: Install Windows Python 3.16+ from release manifest packages by edgarrmondragon · Pull Request #413 · actions/python-versions · GitHub

3 Likes

Yeah, we expected tools like that to break. There are plenty of old versions available through the feed though, so hopefully it’s a one-time migration to an easier model (you might want to use PythonTest\3.16 if you want the CPython test suite and debug symbols to be included).

2 Likes

Thanks for that PR, also reported at actions/setup-python#1371.

2 Likes

CI Images are now available and include Python 3.16a1. Python 3.10 has been dropped.

% docker run registry.gitlab.com/python-devs/ci-images:active python3.16 -c "import sys; print(sys.version)"
3.16.0a1 (main, Oct 14 2026, 17:43:03) [GCC 13.3.0]
% docker run registry.gitlab.com/python-devs/ci-images:active python3.16t -c "import sys; print(sys.version)"
3.16.0a1 free-threading build (main, Oct 14 2026, 17:38:57) [GCC 13.3.0]
2 Likes

Yup, you’re right, that’s going to upset a lot of people. -1

The time to volunteer taking over maintenance of the old installer was nearly two years ago, I’m afraid - see the PEP and discussions that I linked.

At this point, you can either help by encouraging people to update their workflows, or by creating an alternate installer (there are no redistribution limits on CPython builds, so you can use the binaries, it just won’t get python.org hosting). Negative sentiment won’t make a difference now.

7 Likes

From Python Release Python install manager 26.4 | Python.org

We recommend uninstalling the Python launcher from previous installs when installing the Python install manager, as both use the py command.

Does ‘when’ mean ‘before’, with the Add/rRemove utility (search ‘py’) or ‘while’ as a selected option of the new installer?

From 4. Using Python on Windows — Python 3.15.0 documentation

A global configuration file may be configured by an administrator,

How, or where? I want to set install_dir so py will update and start my numerous existing installs.

From 4. Using Python on Windows — Python 3.15.0 documentation

Updates will remove any modifications made to the install, including globally installed packages

What does this mean? If it means clearing out /site-packages, I would consider that a major downgrade.

1 Like

Before or after, it doesn’t matter. Users with a reasonably up-to-date legacy launcher will get helpful errors for commands like py install (unless they genuinely have a file named install that can be launched).

It’s in the Administrative Configuration section of the docs (which is referred to, but not directly linked, from the section where you took that quote).

Chances are it isn’t going to update your existing installs anyway, since it didn’t install them. And it will be able to launch them without extra configuration if they’ve got PEP 514 registrations. Updating install_dir is unlikely to help you, and doing it using the administrative overrides is unnecessary - use a user configuration file, described in the section you were reading.

Ooh yeah, good catch, the documentation is out of date. site-packages and Scripts will be preserved for CPython installs (site-dirs is now a property in the install manifest, with the default being “what CPython used to do”).


Care to file a bug for these? The docs are still in the cpython repo, not pymanager.

1 Like

I am working on a PR about site packages and Script now and and lniking the admin section.
Will add the link below. (I don’t think an issue is needed.)

Yeah, that breaks my app, I’ll have to freeze at 3.14

Sorry for the delay on this, but I had to rework some things for the release so that it includes the build that I’m working towards having be part of the releases some day.

5 Likes

Does that mean we’re removing tkinter starting from 3.16? Because PIM basically has none of the configuration available in the “legacy” installers, including option to install tkinter.