Python Software Foundation licensing is the set of terms under which the Python Software Foundation (PSF) makes the reference implementation of the Python programming language, CPython, and its documentation available, together with the trademark policy for the Python name and logos and the terms of the Python Package Index (PyPI), which the PSF operates. The PSF is a non-profit organization formed in 2001 specifically to own Python-related intellectual property.[1] Python software and documentation are licensed under the Python Software Foundation License Version 2, and every Python release is open source.[1] The licence is royalty-free and has no metric, quantity or user limit, so internal use needs no entitlement beyond the licence text.[1] Commercial use, selling copies and selling products that incorporate Python are all permitted, provided the copyright rules are honoured.[2] For software asset management (SAM), the work is therefore not counting licences but three other tasks: meeting notice conditions when Python is redistributed, tracking release end-of-life dates, and managing the separate licences of third-party packages installed from PyPI. The general model is described in open-source software licensing and software licensing models.
Editions
The PSF does not sell editions of Python. What varies is the licence that applies to a given release and to a given part of the distribution.
| Scope | Licence | Notes |
|---|---|---|
| Python 2.1 and later releases owned by the PSF | PSF License Agreement Version 2[1] | Current licence for CPython and its documentation[1] |
| Code in the documentation (examples, recipes), from Python 3.8.6 | PSF License Version 2 and Zero-Clause BSD, dual licensed[1] | 0BSD is OSI-approved and was first approved as “Free Public License 1.0.0”[16] |
| Python 2.0 | BeOpen Python Open Source License Agreement Version 1[1] | Not GPL-compatible[1] |
| Python 1.6.1 | CNRI License Agreement for Python 1.6.1[1] | GPL compatibility disputed in the source[1] |
| Python 0.9.0 to 1.2 | CWI licence (Stichting Mathematisch Centrum)[1] | Permissive notice-style licence[1] |
| Third-party code incorporated into CPython | The component’s own licence[1] | For example OpenSSL under Apache License 2.0 in the Windows and macOS installers[1] |
Because current releases derive from earlier code, the full licence text shipped with CPython stacks the PSF, BeOpen, CNRI and CWI agreements.[1] SPDX records this whole stack as Python-2.0, “the overall Python license as published on the OSI website”, and the PSF component alone as PSF-2.0, which other projects also use independently.[11][12] The Open Source Initiative lists the Python License, Version 2 with the PSF as steward, in its “Superseded” category.[13] Python.org states that Python, its standard libraries and Jython are distributed under the Python License, and that other implementations such as IronPython and PyPy have their own licences.[3] Catalog proof: SPDX distinguishes PSF-2.0 from the full Python-2.0 licence stack; Documentation code examples are dual licensed PSF-2.0 and 0BSD. The clause-by-clause reading is in PSF License and CPython redistribution.
Metrics
Python itself has no licence metric. The PSF License grants a nonexclusive, royalty-free, world-wide licence and sets no count of users, devices, cores or instances.[1] The only per-unit charge the PSF publishes is for PyPI organization accounts:
| PSF term | Catalog row | Where it applies | What the PSF says |
|---|---|---|---|
| member User, per month | PyPI organization member User | PyPI Corporate Organizations | “$5 per member User, per month”, invoiced monthly based on usage[9] |
The price point is recorded as the SKU PyPI Corporate Organization - per member User per month. See PyPI package licensing and organization accounts.
Counting / floors
No count for Python (as retrieved 2026-09-27). Copying, installing or otherwise using Python binds the user to the licence terms. There is no order, key or registration step.[1] Deployment counts therefore matter for security and lifecycle management, not for licence compliance. Catalog proof: PSF License grants royalty-free use, modification and distribution; Licence to Python is accepted by copying, installing or using it.
PyPI Corporate Organizations. Per-seat organization membership is billed on usage in the preceding month. A login may be used by only one person, and a paid Organization may give access only to as many Personal Accounts as the subscription allows.[8] Community Organizations get all current organization features at no cost.[9] No minimum quantity is published. Catalog proof: PyPI Corporate Organizations are billed per member User per month.
Virtualization & partitioning
Not applicable. The PSF License does not refer to processors, hosts, virtual machines or containers, and grants the same rights however Python is deployed.[1] Python in container images, virtual machines and serverless runtimes is licensed on the same terms as on a physical machine. Any conditions come from redistributing the image, not from where it runs.
Cloud / BYOL
Not applicable in the commercial sense. The licence contains no hosting or service-provider restriction, so running Python in a cloud or offering a service built on it needs no additional right from the PSF.[1] Python runtimes supplied by cloud providers, operating-system distributors or other vendors are redistributions. Their support and warranty terms are set by those vendors, not by the PSF.
Programs
- PyPI Corporate Organization. PyPI lets private or corporate organizations use organization-account features for a monthly subscription fee.[17] The price is $5 per member User, per month.[9] Paid services are governed by the PyPI Terms of Service, which took effect on 2025-02-25.[8]
- PyPI Community Organization. The same features, provided free of charge to qualifying community projects.[17][9]
The retrieved documents describe no paid support, enterprise edition, extended-support contract or commercial licence for Python. The PSF License disclaims all warranties and makes Python available “AS IS”.[1] Catalog proof: Python is provided as is without warranty.
Redistribution and modification
The PSF License places no conditions on internal use. Its conditions apply when Python, or a derivative version, is passed to others.
- Keep the licence and notice. PSF’s License Agreement and PSF’s copyright notice must be retained in Python alone or in any derivative version.[1] The FAQ puts it this way: “leave the copyrights in” and display them in any documentation about Python that you produce.[2] Catalog proof: PSF License Agreement and copyright notice must be retained.
- Summarise changes. A licensee that makes a derivative work available to others agrees to include a brief summary of the changes made to Python.[1] Catalog proof: Derivative works made available to others must summarise changes.
- No copyleft. All Python licences, unlike the GPL, let a modified version be distributed without making the changes open source.[1] There is no source-code offer and no linking condition, so applications written in Python, or embedding it, can carry any licence. Catalog proof: Python licences are not copyleft.
- GPL compatibility. Python 2.2 and later are GPL-compatible, which allows them to be combined with GPL-licensed software. Releases 1.6, 2.0 and 2.1 are not.[1] Catalog proof: GPL compatibility depends on the Python release.
- Termination. The licence ends automatically on a material breach of its terms.[1] Catalog proof: PSF License terminates automatically on material breach.
The Windows documentation describes an embeddable package: a ZIP file containing a minimal Python environment, meant to be part of another application rather than used directly by end users. Third-party packages installed with it are to be treated as part of the application.[14] Catalog proof: Embedded distribution: third-party packages are part of the application.
Bundled third-party components
Some software incorporated into Python is under different licences. The licence page lists them, and describes its own list as incomplete.[1] The listed components include Mersenne Twister, SipHash24, dtoa, expat, libffi, zlib, libmpdec, mimalloc, code derived from uvloop and pyzstd, and the Unicode Character Database. Most are under MIT-style or BSD-style licences. The Unicode data is under the Unicode License V3.[1] The Windows and macOS installers may include a copy of the OpenSSL libraries. For OpenSSL 3.0 and later, the Apache License 2.0 applies.[1] Whether a particular build includes the bundled copies of expat, libffi and libmpdec depends on how it was configured.[1] CPython keeps an SPDX-format software bill of materials for its bundled dependencies.[15] Catalog proof: Software incorporated in Python carries its own licences; Windows and macOS installers may include OpenSSL under Apache 2.0; Bundled library copies depend on build configuration.
Trademark policy
The PSF License does not grant permission to use PSF trademarks or trade names to endorse or promote a licensee’s products.[1] “Python” is a registered trademark of the PSF, and the Python logos are also PSF trademarks.[4] The PSF Trademark Usage Policy sorts uses into three groups:
- Never requires approval. Nominative use: stating accurately that software is written in, compatible with or contains the Python programming language. This applies to commercial and non-commercial uses alike, and overrides the rest of the policy.[4] Catalog proof: Nominative use of the Python name and logo never requires approval.
- Always requires approval. Any commercial use of PSF trademarks in product or company names, and any commercial use of a derived (modified) logo. Names such as “The Python Company” or “Python IDE” will be refused.[4] Catalog proof: Commercial product or company names using Python need PSF approval.
- Redistribution. Using the word “Python” when redistributing Python inside a freely distributed application is allowed. If the standard version is modified, this should be clearly indicated. Commercial distributions not covered by nominative use should contact the PSF.[4] Catalog proof: Modified Python redistributed in a product must be marked as modified.
The Trademark FAQ adds that the Python logo may not be used as, or as part of, the product logo of a commercial product.[5] It also suggests a notice stating that “Python” and the Python logo are PSF trademarks and that the user is not affiliated with the PSF.[5] Catalog proof: Python logo may not be a commercial product logo.
Release lifecycle
Since Python 3.9, a feature version has been released every twelve months, in October.[7] Each version is supported for five years. It gets two years of bugfix releases, 18 months for versions before 3.13, followed by security-only fixes. No more binaries are released during the security phase, and the branch is frozen at end of life.[6] As listed on 2026-09-27, Python 3.10 reaches end of life in 2026-10, 3.11 in 2027-10 and 3.12 in 2028-10. Python 3.9 reached end of life on 2025-10-31 and 2.7 on 2020-01-01.[6] Catalog proof: Python feature releases ship annually in October; Each Python version is supported for five years; Security-phase Python releases are source only. See Python release cycle and end of life.
Software asset management practice
The points below apply the cited documents to SAM work. They are commentary, and the documents themselves govern.
- Discovery. Python is installed by operating systems, developer tools, applications and container images. Each installation is licensed under the same terms, so inventory is for version and lifecycle tracking, not for entitlement reconciliation. Embedded runtimes, such as the Windows embeddable package inside third-party applications, may not show up as a separately installed product.[14]
- Version and end-of-life tracking. Record the feature version (3.x) of every runtime and compare it with the published end-of-life dates. Runtimes in the security phase get no new official binaries.[6]
- Internal use versus redistribution. Internal use carries no licence obligation beyond acceptance of the terms.[1] Products that ship Python to customers must carry the PSF licence and copyright notice, a summary of any changes, and the notices of bundled components such as OpenSSL.[1]
- Third-party packages. Packages from PyPI are licensed by their uploaders under whatever licence they specify.[8] Package metadata can declare an SPDX licence expression in the License-Expression field. That expression covers only the distribution archive that contains it.[10] Catalog proof: PyPI packages are licensed by their authors, not by the PSF; License-Expression metadata covers only its distribution archive.
For the general discipline, see license compliance and software asset management.
Out of scope
- Other Python implementations (Jython, IronPython, PyPy, MicroPython) and third-party Python distributions, whose licences and support terms are set by their own publishers.[3]
- Licences of individual PyPI packages, including licences of commercial packages distributed through PyPI.
- Trademark policies for PyCon and PyLadies, which the PSF publishes separately.[4]
- PSF sponsorship, membership and donation programs, which are not licences to use Python.
- Export-control questions for packages uploaded to PyPI.[3]