Fundamentos

Versiones de Python: Python 2 y 3, novedades de 3.10 a 3.15 y qué versión instalar

Actualizado: · Skillaria.Top

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.

AspectoPython 2Python 3
Impresiónprint "hola" — instrucciónprint("hola") — función
Cadenasbytes por defecto, Unicode — u"..."str — siempre Unicode, los bytes son bytes
División7 / 2 da 37 / 2 da 3.5, la división entera es 7 // 2
Entradaraw_input()input()
Rangosrange construye una lista, xrange es perezosorange es perezoso
Soporteno hay desde 2020versió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 de if/elif.
  • Uniones de tipos con barra vertical: int | None en lugar de Optional[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 mediante add_note().
  • Módulo tomllib para leer TOML, por ejemplo pyproject.toml.

Python 3.12 (octubre de 2023)

  • Nueva sintaxis de genéricos: def primero[T](items: list[T]) -> T y la sentencia type para 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 exit y help sin 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 cgi y telnetlib (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 y except 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 con lazy import pandas arrancó 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ónLanzamientoFin de soporteEstado en octubre de 2026
2.72010enero de 2020sin soporte
3.9octubre de 2020octubre de 2025sin soporte
3.10octubre de 2021octubre de 2026el soporte termina
3.11octubre de 2022octubre de 2027solo seguridad
3.12octubre de 2023octubre de 2028solo seguridad
3.13octubre de 2024octubre de 2029correcciones de errores
3.14octubre de 2025octubre de 2030correcciones de errores
3.15octubre de 2026octubre de 2031la 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ónQué instalar
Aprende desde cerola última estable (3.15)
Proyecto nuevola última o la penúltima
La biblioteca no soporta la novedadla versión menor anterior
Proyecto antiguo en 3.10 o inferiorplanificar el paso a una versión con soporte
Código en Python 2migrarlo 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.

Aprende este tema en vídeo

Este tema se explica a fondo y con práctica en el curso «Python 3.15: от новичка до профи».

Ir al curso