Which license(s) is Python available under?

The History and License page includes not only the PSF license, but also several licenses which were used by earlier Python releases, such as BeOpen and CNRI. Are all these licenses still applicable to modern Python releases? If so, can users choose which license to use, or are they bound to follow the terms of all of them in combination? Hope that makes sense, thank you.

As long as any part of the code which was under those licenses is still present in CPython, then all of the licenses apply to any distribution of CPython. It’s not a ‘license choice’ situation :slight_smile:


Not only would code still in existence (unless relicensed by its
copyright holders) be covered by its original license, so too would
anything in the codebase derived from it (in the “derivative works”
sense). It’s generally safest to assume the whole of the codebase is
covered by all of the licenses listed, particularly if you’re not
planning to slice-and-dice the source code into smaller pieces

But really, if you have legitimate IP law concerns with regard to
CPython, you should be seeking advice from your own legal counsel
and not random people on a web forum.

1 Like

Since the OP is a CPython core developer, the question may be relevant for the PSF’s legal counsel to answer.


I don’t believe the old licenses are still in effect.

Every Python version since 2.1.1 is listed as being GPL-compatible, while some previous versions are listed as not being GPL-compatible. Logically, a piece of software cannot be both GPL-compatible and not GPL-compatible. Thus, the old GPL-incompatible licenses cannot currently be in effect.

1 Like

Which would then imply that the code under the original license was
voluntarily relicensed by its copyright holders, or they were under
an existing agreement which would allow another party (e.g. PSF) to
relicense their work.

But yes, if the CPython license documentation is unclear on matters
of provenance or compatibility with other licenses, PSF legal is who
you want an answer from. It can also help to have some context as to
why you’re asking, since it might not actually matter depending on
the reason.