Guido van Rossum ideó el lenguaje Python a finales de los 80 y comenzó a implementarlo en diciembre de 1989. En febrero de 1991 publicó la primera versión pública, la versión 0.9.0. La versión 1.0 se publicó en enero de 1994, la versión 2.0 se publicó en octubre de 2000 y la versión 3.0 se publicó en diciembre de 2008.
Hasta 2018, el desarrollo de Python estaba dirigido personalmente por Guido van Rossum y bajo el paraguas de la fundación Python Software Foundation. En julio de 2018 Guido van Rossum anunció que dejaría de dirigir el desarrollo de Python. Desde 2019 el desarrollo de Python está dirigido por un consejo de dirección de cinco miembros elegidos entre los desarrolladores de Python y que se renueva anualmente.
En octubre de 2019 se decidió cambiar el ritmo de publicación de nuevas versiones de Python de los anteriores 18 meses a 12 meses. Desde Python 3.8 (publicado en octubre de 2019) se publica un nueva versión de Python cada mes de octubre.
Las versiones de Python se identifican por tres números X.Y.Z, en la que:
Los principales cambios introducidos en Python 2 fueron las cadenas Unicode, las comprensiones de listas, las asignaciones aumentadas, los nuevos métodos de cadenas y el recolector de basura para referencias cíclicas.
Los principales cambios introducidos en Python 3 fueron la separación entre cadenas Unicode y datos binarios, la función print(), cambios en la sintaxis, tipos de datos, comparadores, etc.
Por el momento, no hay planes de crear una nueva versión Python 4, incompatible con las anteriores.
Desde la versión 2.0 hasta 2019, las versiones X.Y se publicaron aproximadamente cada año y medio y se mantenían durante cinco años, excepto la versión 2.7, que se mantuvo durante diez años, hasta el 1 de enero de 2020 (aunque se publicó una versión final en abril de 2020).
En octubre de 2019 se decidió cambiar el ritmo de publicación de nuevas versiones de Python de los anteriores 18 meses a 12 meses, manteniendo los 5 años de mantenimiento. Desde Python 3.8 (publicado en octubre de 2019) se publica un nueva versión de Python cada mes de octubre.
La publicación de las versiones .Z es más irregular, porque el descubrimiento de fallos de seguridad puede provocar la necesidad de publicación de una nueva versión en cualquier momento, pero hay un calendario previsto de versiones .Z.
En principio, en el primer año después de la publicación de la versión inicial X.Y.0, se publican versiones .Z cada dos meses, tanto en forma de código fuente como de instaladores. Tras la publicación de la siguiente versión X.(Y+1).0 se publica una versión X.Y.Z proporcionando instaladores, pero las versiones .Z que se publican hasta completar los cinco años de mantenimiento ya sólo se publican en forma de código fuente. Además, normalmente se publica una última versión X.Y.Z justo antes de que una versión X.Y deje de mantenerse.
Al margen de las versiones publicadas por la PSF, algunas empresas comerciales ofrecen el mantenimiento de versiones antiguas una vez acabado el mantenimiento oficial.
Es posible tener instalados en el ordenador varias versiones de Python pero, salvo que sea necesario para la ejecución de programas o paquetes incompatibles, se recomienda instalar siempre la última versión disponible.
La imagen siguiente muestra la fecha de publicación de las versiones principales de Python, en cada una de las tres grandes versiones, Python 1, Python 2 y Python 3. Las versiones indicadas con punto rojo se consideran obsoletas, de las versiones indicadas con punto azul se siguen publicando actualizaciones y las versiones indicadas con punto blanco corresponden a versiones futuras con fechas de publicación previstas ya anunciadas.
La imagen siguiente muestra la fecha de publicación de las últimas versiones menores de Python en los últimos 15 años. Las versiones indicadas en rojo se consideran obsoletas, las versiones indicadas con punto blanco corresponden a versiones futuras con fechas ya previstas.
La tabla siguiente indica las versiones de Python incluidas en las distribuciones GNU/Linux más utilizadas en servidores:
Año | Python | Fedora | RedHat Enterprise Linux | Debian | Ubuntu | Año |
---|---|---|---|---|---|---|
2025 | ¿Oct?: Py 3.14 |
¿Nov?: Fedora 43 ¿Abr?: Fedora 42 |
¿?: Debian 13 (trixie): Py 3.12.X | 2025 | ||
2024 | Oct: Py 3.13 |
¿Oct?: Fedora 41 Abr: Fedora 40: Py 3.12.2 |
Abr: Ubuntu 24.04 LTS (normal): Py 3.12.3 | 2024 | ||
2023 | Oct: Py 3.12 |
Nov: Fedora 39: Py 3.12.0 Abr: Fedora 38: Py 3.11.2 |
Jun: Debian 12 (bookworm): Py 3.11.X | 2023 | ||
2022 | Oct: Py 3.11 |
Dic: Fedora 37: Py 3.11.0 May: Fedora 36: Py 3.10.4 |
May: RHEL 9: Py 3.9.10 | Abr: Ubuntu 22.04 LTS (jammy): Py 3.10.4 | 2022 | |
2021 | Oct: Py 3.10 |
Nov: Fedora 35: Py 3.10.0 Abr: Fedora 34: Py 3.9.2 |
Ago: Debian 11 (bullseye): Py 3.9.2 | 2021 | ||
2020 | Oct: Py 3.9 |
Oct: Fedora 33: Py 3.9.0 Abr: Fedora 32: Py 3.8.2 |
Abr: Ubuntu 20.04 LTS (focal): Py 3.8.2 | 2020 | ||
2019 | Oct: Py 3.8 |
Oct: Fedora 31: Py 3.7.4 Abr: Fedora 30: Py 3.7.2 |
May: RHEL 8: Py 3.6 | Jul: Debian 10 (buster): Py 3.7.3 | 2019 | |
2018 | Jun: Py 3.7 |
Oct: Fedora 29: Py 3.7.0 May: Fedora 28: Py 3.6.5 |
Abr: Ubuntu 18.04 LTS (bionic): | 2018 | ||
2017 |
Nov: Fedora 27: Py 3.6.2 Jul: Fedora 26: Py 3.6.1 |
Jun: Debian 9 (stretch): Py 2.7 / Py 3.5 | 2017 | |||
2016 | Dic: Py 3.6 |
Nov: Fedora 25: Py 3.5.2 Jun: Fedora 24: Py 3.5.1 |
Abr: Ubuntu 16.04 LTS (xenial): | 2016 | ||
2015 | Sep: Py 3.5 |
Nov: Fedora 23: Py 3.4.3 May: Fedora 22: Py 2.7.9 |
Abr: Debian 8 (jessie): Py 2.7 / Py 3.4 | 2015 | ||
2014 | Mar: Py 3.4 | Dic: Fedora 21: Py 2.7.8 | Jun: RHEL 7: Py 2.7 | Abr: Ubuntu 14.04 LTS (trusty): | 2014 | |
2013 |
Dic: Fedora 20: Py 2.7.5 Jul: Fedora 19: Py 2.7.5 Ene: Fedora 18: Py 2.7.3 |
May: Debian 7 (wheezy): Py 2.7 / Py 3.2 | 2013 | |||
2012 | Sep: Py 3.3 | May: Fedora 17: Py 2.7.3 | Abr: Ubuntu 12.04 LTS (precise): | 2012 | ||
2011 | Feb: Py 3.2 |
Nov: Fedora 16: Py 2.7.2 May: Fedora 15: Py 2.7.1 |
Feb: Debian 6 (squeeze): Py 2.6 / Py 3.1 | 2011 | ||
2010 | Jul: Py 2.7 |
Nov: Fedora 14: Py 2.7.0 May: Fedora 13: Py 2.6.4 |
Nov: RHEL 6: Py 2.6 | Abr: Ubuntu 10.04 LTS (lucid): | 2010 | |
2009 | Jun: Py 3.1 |
Nov: Fedora 12: Py 2.6.2 Jun: Fedora 11:Py 2.6.0 |
Feb: Debian 5 (lenny): Py 2.5 | 2009 | ||
2008 |
Dic: Py 3.0 Oct: Py 2.6 |
Nov: Fedora 10: Py 2.5.2 May: Fedora 9: Py 2.5.1 |
Abr: Ubuntu 8.04 LTS (hardy): | 2008 | ||
2007 |
Nov: Fedora 8: Py 2.5.1 May: Fedora 7: Py 2.5.0 |
Mar: RHEL 5: Py 2.4 | Abr: Debian 4 (etch): | 2007 | ||
Año | Python | Fedora | RedHat Enterprise Linux | Debian | Ubuntu | Año |
Fuentes: