Versiones de Python: Python 2 y 3, novedades de 3.10 a 3.15 y qué versión instalar
La rama vigente de Python es la 3; la última versión estable es Python 3.15 (publicada el 9 de octubre de 2026), y Python 2 no tiene soporte desde 2020. Cada octubre sale una versión nueva que recibe correcciones durante unos cinco años, así que para proyectos nuevos instale la 3.x más reciente; para comprobar su versión use python3 --version.
Hoy la rama activa del lenguaje es una sola: Python 3. La última versión estable es Python 3.15, publicada el 9 de octubre de 2026, mientras que Python 2 terminó su vida oficial ya en 2020. A continuación explicamos en qué se diferencian las versiones de Python, qué trajo cada una de la 3.10 a la 3.15, cuál conviene instalar y cómo saber cuál tiene instalada.
Cómo funcionan las versiones de Python
El número de versión tiene tres partes: 3.15.0. La primera es la versión principal (la rama del lenguaje), la segunda es la versión menor, en la que aparecen nuevas funciones, y la tercera es el número de corrección, que solo incluye arreglos de errores. Cuando se habla de «versiones de Python», normalmente se hace referencia a las menores: 3.10, 3.11, 3.12 y así sucesivamente.
Desde 2019 rige un ciclo anual (PEP 602): cada octubre sale una nueva versión menor. Unos meses antes aparecen las versiones alfa, luego las beta y los candidatos a publicación, y después del lanzamiento llegan las correcciones, como 3.15.1, 3.15.2. Actualizar entre ellas es seguro: el comportamiento del lenguaje no cambia dentro de una misma versión menor.
De aquí viene la confusión en las búsquedas: «python 311» y «python 3.11» son lo mismo, la versión 3.11. El número no es un decimal, así que 3.10 es más nueva que 3.9, y 3.15 es más nueva que 3.2.
Python 2 y Python 3: en qué se diferencian
Python 3 salió en 2008 y rompió deliberadamente la compatibilidad hacia atrás para corregir decisiones antiguas del lenguaje. Por eso el código escrito para Python 2 a menudo no se ejecuta en Python 3 sin cambios. La última versión de la rama 2 es la 2.7; su soporte terminó el 1 de enero de 2020, y la versión final, 2.7.18, salió en abril de 2020.
| Aspecto | Python 2 | Python 3 |
|---|---|---|
| Impresión | print "hola" — instrucción | print("hola") — función |
| Cadenas | bytes por defecto, Unicode — u"..." | str — siempre Unicode, los bytes son bytes |
| División | 7 / 2 da 3 | 7 / 2 da 3.5, la división entera es 7 // 2 |
| Entrada | raw_input() | input() |
| Rangos | range construye una lista, xrange es perezoso | range es perezoso |
| Soporte | no hay desde 2020 | versión nueva cada año |
Si encuentra un manual o una respuesta donde print aparece sin paréntesis, es Python 2 y el material está desactualizado. Estudiar esa rama hoy no tiene sentido: no se instala en sistemas nuevos, las bibliotecas dejaron de darle soporte hace tiempo, y sus conocimientos solo sirven para migrar código antiguo.
Novedades de Python 3.10 a 3.15
A continuación, lo principal de cada versión: lo que cambia el código del día a día. Las listas completas de cambios están en la sección What's New de la documentación oficial.
Python 3.10 (octubre de 2021)
- Coincidencia de patrones
match/case(PEP 634): desglose de estructuras de datos en lugar de cadenas deif/elif. - Uniones de tipos con barra vertical:
int | Noneen lugar deOptional[int](PEP 604). - Varios gestores de contexto entre paréntesis en un solo
with. - Mensajes de error de sintaxis mucho más claros.
def describir(punto):
match punto:
case (0, 0):
return "origen de coordenadas"
case (x, 0):
return f"en el eje X: {x}"
case _:
return "en otro lugar"
print(describir((3, 0))) # en el eje X: 3
Python 3.11 (octubre de 2022)
- Velocidad: el proyecto Faster CPython aceleró el intérprete en promedio alrededor de una cuarta parte, y en algunas tareas, más.
- Indicadores precisos en el traceback: las flechas
^^^^muestran qué expresión exacta falló en la línea (PEP 657). - Grupos de excepciones y
except*(PEP 654), notas sobre excepciones medianteadd_note(). - Módulo
tomllibpara leer TOML, por ejemplopyproject.toml.
Python 3.12 (octubre de 2023)
- Nueva sintaxis de genéricos:
def primero[T](items: list[T]) -> Ty la sentenciatypepara alias de tipos (PEP 695). - Las f-strings tienen una gramática completa (PEP 701): dentro se pueden usar las mismas comillas, saltos de línea y comentarios.
- Se eliminó de la biblioteca estándar el obsoleto
distutils. - Sugerencias aún más detalladas en los errores, por ejemplo «¿olvidaste importar el módulo?».
type Par = tuple[int, int]
def primero[T](items: list[T]) -> T:
return items[0]
canciones = ["a", "b"]
print(f"Primera: {primero(canciones)!r}, en total {len(canciones)}")
print(f"{"comillas dentro"}") # funciona desde 3.12
Y sobre la pregunta frecuente «¿desde qué versión existen las f-strings?»: las f-strings aparecieron ya en Python 3.6, mientras que la libertad con comillas y saltos de línea dentro de las llaves llegó con 3.12.
Python 3.13 (octubre de 2024)
- Nueva consola interactiva: color, edición de varias líneas, historial, y los comandos
exityhelpsin paréntesis. - Compilación experimental sin GIL (free-threaded, PEP 703) y compilador JIT experimental (PEP 744).
- Se eliminaron módulos obsoletos de la biblioteca, como
cgiytelnetlib(PEP 594). - El plazo de correcciones para las nuevas versiones pasó a ser de dos años.
Python 3.14 (octubre de 2025)
- Cadenas de plantilla, t-strings:
t"Hola, {nombre}"no devuelven una cadena ya formada, sino un objeto plantilla que se puede procesar de forma segura (PEP 750). - Evaluación diferida de las anotaciones (PEP 649): menos problemas con tipos declarados más abajo en el archivo.
- La compilación sin GIL dejó de ser experimental y recibió soporte oficial.
- Módulo
compression.zstd, resaltado de sintaxis en la consola yexcept A, B:sin paréntesis.
Python 3.15 (9 de octubre de 2026)
- Importación perezosa
lazy import(PEP 810): el módulo se carga en el primer uso, no al arrancar. En la medición del curso, un script conlazy import pandasarrancó en 14 ms en lugar de 280 ms. - Diccionario inmutable integrado
frozendict(PEP 814). - Desempaquetado en comprehensions:
[*g for g in grupos](PEP 798). - Profiler por muestreo Tachyon en la biblioteca estándar (PEP 799).
- UTF-8 por defecto al trabajar con archivos (PEP 686): se acabaron las sorpresas con la codificación en Windows.
- Nuevas sugerencias «Did you mean» en los mensajes de error.
lazy import json # PEP 810
cfg = frozendict(limite=500) # PEP 814
plana = [*g for g in [[1, 2], [3]]] # PEP 798 -> [1, 2, 3]
print(plana, cfg["limite"])
# python -m profiling.sampling run app.py # PEP 799, Tachyon
Este código solo se ejecuta en la 3.15: en versiones anteriores lazy import y el desempaquetado en comprehensions dan SyntaxError, y frozendict produce NameError.
Plazos de soporte de las versiones de Python
Cada versión vive unos cinco años. Primero recibe correcciones de errores y publicaciones de parches periódicas (desde la 3.13, durante dos años), y después solo correcciones de seguridad hasta el final del plazo. Tras eso la versión llega al fin de vida (end-of-life): nadie corrige ya sus vulnerabilidades.
| Versión | Lanzamiento | Fin de soporte | Estado en octubre de 2026 |
|---|---|---|---|
| 2.7 | 2010 | enero de 2020 | sin soporte |
| 3.9 | octubre de 2020 | octubre de 2025 | sin soporte |
| 3.10 | octubre de 2021 | octubre de 2026 | el soporte termina |
| 3.11 | octubre de 2022 | octubre de 2027 | solo seguridad |
| 3.12 | octubre de 2023 | octubre de 2028 | solo seguridad |
| 3.13 | octubre de 2024 | octubre de 2029 | correcciones de errores |
| 3.14 | octubre de 2025 | octubre de 2030 | correcciones de errores |
| 3.15 | octubre de 2026 | octubre de 2031 | la más nueva |
El estado actual de cada rama se publica en la página Status of Python versions de la Python Developer's Guide. Antes de elegir una versión para un proyecto de larga duración conviene consultarla.
Qué versión de Python instalar
Para estudiar y para proyectos nuevos, la última estable: ahora mismo, Python 3.15. El argumento «me quedo con la probada 3.10» no funciona: en octubre de 2026 deja de recibir incluso correcciones de seguridad, y aprender el lenguaje con una versión que se retira obliga a volver a aprender después. Dentro de Python 3 la compatibilidad es buena: el código para una versión antigua casi siempre funciona en una nueva, pero lo contrario no es cierto.
Hay excepciones. Si la biblioteca que necesita todavía no publicó wheels para la versión nueva (esto pasa en las primeras semanas tras el lanzamiento de octubre con paquetes que incluyen extensiones en C), use la anterior, 3.14. En un servidor de vida larga, aténgase a la versión de los repositorios de su distribución o instale la que necesite con el gestor uv. La regla principal es no elegir una versión que tenga menos de un año de soporte por delante.
| Situación | Qué instalar |
|---|---|
| Aprende desde cero | la última estable (3.15) |
| Proyecto nuevo | la última o la penúltima |
| La biblioteca no soporta la novedad | la versión menor anterior |
| Proyecto antiguo en 3.10 o inferior | planificar el paso a una versión con soporte |
| Código en Python 2 | migrarlo a Python 3 |
Cómo saber la versión de Python
En la terminal basta un comando. En macOS y Linux se suele usar python3; en Windows, python o el lanzador py.
$ python3 --version
Python 3.12.3 # versión antigua: conviene actualizar
$ python3 -V
Python 3.15.0
En Windows, el lanzador muestra todas las versiones instaladas a la vez, y uv muestra las que ve y puede instalar:
py --list
uv python list
Desde dentro de un programa, la versión la da el módulo sys. La tupla sys.version_info es cómoda para comparar y hacer que el script compruebe por sí mismo si el intérprete le sirve:
import sys
print(sys.version) # cadena completa con la fecha de compilación
print(sys.version_info[:3]) # por ejemplo (3, 15, 0)
if sys.version_info < (3, 10):
raise SystemExit("Se necesita Python 3.10 o una versión más nueva")
Si python3 --version muestra una versión distinta de la que instaló, significa que en el PATH se encuentra primero otro intérprete. Para ver cuál es, use which python3 en macOS y Linux, o where python en Windows.
Varias versiones de Python en un mismo equipo
Tener la 3.13 y la 3.15 a la vez es normal: cada una se instala en su propia carpeta. Lo más cómodo es gestionarlas con uv: uv python install 3.15 descarga una versión, y uv python pin 3.15 la fija a un proyecto en el archivo .python-version. El Python del sistema en Linux es mejor no tocarlo ni actualizarlo a mano, porque lo usan las utilidades del propio sistema operativo.
La versión mínima de un proyecto se indica en pyproject.toml, en el campo requires-python. Así el gestor de paquetes no permitirá instalar el proyecto en un intérprete no compatible.
[project]
name = "gastos"
version = "0.1.0"
requires-python = ">=3.15"
Conclusión
Las versiones vigentes de Python pertenecen a la rama 3; la más nueva es la 3.15, con importación perezosa, frozendict y UTF-8 por defecto. Python 2 terminó en 2020, y la 3.10 deja el soporte en octubre de 2026, así que conviene aprender y empezar proyectos con una versión reciente. Para comprobar la suya, use python3 --version. En el curso, cada tema termina con un bloque «Novedades de 3.10–3.15», de modo que los cambios entre versiones se explican con ejemplos prácticos.
Preguntas frecuentes
¿Qué es IDLE Python 3.10 de 64 bits en el menú de inicio?
Es el entorno de desarrollo sencillo que instala el instalador de python.org; en el nombre se indican la versión del intérprete y la arquitectura. Si dice 3.10, tiene una versión cuyo soporte termina: conviene instalar una más reciente.
¿Se puede actualizar Python 3.12 a 3.15 encima?
Las versiones menores se instalan una junto a otra, no una encima de la otra: tras instalar la 3.15, la anterior se mantiene y puede eliminarla por separado. Las bibliotecas hay que instalarlas de nuevo o recrear el entorno virtual.
¿Qué diferencia hay entre la versión de 64 bits y la de 32 bits?
La de 64 bits puede usar más memoria y sirve para cualquier equipo moderno; la de 32 bits solo se elige para sistemas muy antiguos.
¿Para qué sirven las versiones alfa y beta?
Son compilaciones preliminares de la versión siguiente, pensadas para probar bibliotecas y proyectos; para estudiar y trabajar, use solo las versiones finales.
Este tema se explica a fondo y con práctica en el curso «Python 3.15: от новичка до профи».
Ir al curso