HOWTO · Python

Cambiar entre Python 2 y 3

Este tutorial describe cómo cambiar entre Python 2 y 3.

En esta página

Para ejecutar un proyecto con el intérprete adecuado, usa directamente el comando de Python 2 o Python 3 correspondiente, o selecciónalo mediante un entorno del proyecto. Esto presupone que el intérprete necesario está instalado. Python 2 llegó al final de su vida útil en enero de 2020, como anunció el aviso de retirada de Python 2 de Python.org; úsalo solo cuando lo requiera código heredado. Elegir un intérprete no convierte el código entre versiones ni restablece el soporte de seguridad.

Comprueba qué intérpretes de Python 2 y Python 3 están disponibles

En Linux y macOS, comprueba qué comandos están instalados con python2 --version y python3 --version. El comando python, sin más, puede apuntar a distintas versiones según el sistema operativo y la instalación; no des por hecho que selecciona la versión que necesita tu proyecto. Si no se encuentra un comando, instala ese intérprete desde una fuente adecuada para tu sistema operativo y proyecto; su disponibilidad depende de la plataforma.

En Windows, el lanzador de Python puede seleccionar una versión instalada. Ejecuta py -2 --version y py -3 --version en el Símbolo del sistema o en PowerShell. Para usar estos comandos, las versiones correspondientes deben estar instaladas y el lanzador debe poder detectarlas.

Ejecuta Python 2 o Python 3 en Linux y macOS

Inicia una sesión interactiva de Python 2 con python2 o de Python 3 con python3. Para ejecutar un script llamado app.py, usa python2 app.py o python3 app.py, respectivamente. Estos comandos explícitos seleccionan el intérprete para esa ejecución y no modifican el valor predeterminado del sistema. Si tu instalación usa otros nombres de comando, indica la ruta del ejecutable de la versión instalada.

Ejecuta Python 2 o Python 3 en Windows

Usa py -2 para iniciar Python 2 o py -3 para iniciar Python 3. Ejecuta un script con py -2 app.py o py -3 app.py. Si el lanzador indica que la versión solicitada no está disponible, comprueba que esté instalada y registrada en el lanzador. Un comando que funciona en un shell también puede depender de la configuración de PATH de ese shell.

Mantén aislados el intérprete y las dependencias de cada proyecto

Un entorno virtual separa los paquetes instalados para un proyecto de los de otros proyectos. Créalo con el intérprete que quieras usar y actívalo antes de instalar paquetes o ejecutar el proyecto. Para Python 3, la biblioteca estándar incluye venv; por ejemplo, python3 -m venv .venv crea un entorno si ese intérprete incluye el módulo. Python 2 no incluye venv; los proyectos heredados quizá necesiten una herramienta de terceros compatible, como virtualenv, instalada y configurada para ese intérprete de Python 2. La disponibilidad y la configuración dependen del sistema operativo y de las herramientas instaladas.

Herramientas como pyenv permiten seleccionar versiones de Python por proyecto en los sistemas compatibles, mientras que Docker puede aislar un proyecto en una imagen de contenedor. Ambas opciones requieren configuración adicional, y quizá no haya una compilación o imagen utilizable de Python 2 para todas las plataformas. El aislamiento ayuda a evitar conflictos entre dependencias, pero Python 2 sigue sin recibir soporte y puede ser peligroso exponerlo a entradas o redes no confiables. Para proyectos nuevos, prefiere Python 3.

Comprueba qué intérprete utiliza un script

Comprueba la versión con el mismo comando o entorno activado que ejecuta el script: python2 --version, python3 --version, py -2 --version o py -3 --version. Instala los paquetes también con ese intérprete: python3 -m pip install PACKAGE vincula pip con Python 3, mientras que py -2 -m pip install PACKAGE instala el paquete para Python 2 mediante el lanzador de Windows, si está disponible.

También puedes incluir esta pequeña comprobación en un script y ejecutarlo con el comando que seleccionaste. Imprime la versión principal del intérprete que lo está ejecutando. Las etiquetas y la salida del ejemplo de código permanecen en inglés:

from __future__ import print_function

import sys
print("Python", sys.version_info[0])
Python 3

Si la versión indicada no es la que requiere el proyecto, cambia el comando o activa el entorno adecuado y vuelve a comprobarla. Seleccionar un intérprete determina qué versión ejecuta el código; no hace que la sintaxis ni las dependencias de Python 2 sean compatibles con Python 3.