Cómo comprobar y cambiar versiones de Python en Ubuntu: Guía completa para desarrolladores

1. Introducción

Al usar Python en Ubuntu, gestionar las versiones de Python se convierte en una tarea importante.
Python recibe frecuentemente nuevas versiones, y dependiendo del entorno de desarrollo, es posible que necesites usar diferentes versiones.

Sin embargo, Ubuntu puede tener múltiples versiones de Python instaladas, lo que lleva a situaciones como:
“Quiero verificar la versión actual de Python”
“Quiero usar una versión específica”
“Quiero cambiar entre versiones de Python”
Estas situaciones ocurren con bastante frecuencia.

Este artículo explica en detalle cómo verificar, cambiar y seleccionar versiones de Python en Ubuntu.
Con ejemplos de comandos incluidos, incluso los principiantes pueden seguirlo fácilmente. Asegúrate de leer hasta el final.

2. Cómo verificar la versión de Python en Ubuntu【¡Pruébalo ahora!】

Primero, veamos cómo verificar qué versión de Python está actualmente instalada en Ubuntu.

2.1 La forma más fácil (Verifica en 1 segundo)

La forma más simple de verificar tu versión de Python en Ubuntu es ejecutar el siguiente comando en la terminal:

python3 --version

Puedes obtener el mismo resultado usando:

python3 -V

Ejemplo:

$ python3 --version
Python 3.10.6

Esto muestra la versión actual de Python.

2.2 Diferencia entre python --version y python3 --version

En Ubuntu, el comando python puede referirse a Python 2.
Por lo tanto, se recomienda usar python3 --version.

Puedes verificar si python está instalado ejecutando:

python --version

Si ves Command 'python' not found, probablemente significa que solo Python 3 está instalado.

2.3 Obtener información detallada de la versión

Si quieres información más detallada, ejecuta:

python3 -VV

Ejemplo:

$ python3 -VV
Python 3.10.6 (main, Jan 16 2024, 11:25:20) [GCC 11.2.0]

Este comando muestra detalles como la versión de GCC usada para la compilación y la fecha de construcción.

2.4 Verificar la versión de Python dentro de un script

Si quieres verificar la versión de Python desde dentro de un script, usa el módulo sys:

import sys
print(sys.version)
print(sys.version_info)

Ejemplo:

$ python3 script.py
3.10.6 (main, Jan 16 2024, 11:25:20) [GCC 11.2.0]
sys.version_info(major=3, minor=10, micro=6, releaselevel='final', serial=0)

Usando sys.version_info, puedes obtener cada elemento de la versión (mayor, menor, micro) como números.

3. Cómo cambiar o gestionar versiones de Python【Establece el predeterminado del sistema】

Ubuntu puede tener múltiples versiones de Python instaladas.
Esta sección explica cómo cambiar la versión predeterminada de Python a nivel del sistema.

3.1 Verificar las versiones de Python instaladas

Para verificar qué versiones de Python están instaladas, ejecuta:

ls /usr/bin/python*

Ejemplo:

$ ls /usr/bin/python*
/usr/bin/python3  /usr/bin/python3.8  /usr/bin/python3.10

Si hay múltiples versiones instaladas, puedes elegir cuál usar como predeterminada.

3.2 Cambiar el Python predeterminado usando update-alternatives

Puedes cambiar la versión predeterminada de Python usando update-alternatives.

Primero, verifica la configuración actual:

sudo update-alternatives --display python

Si python no está registrado, agrégalo con:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2

Luego elige la versión predeterminada:

sudo update-alternatives --config python

Ejemplo:

There are 2 choices for the alternative python (providing /usr/bin/python).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/python3.10  1         auto mode
  1            /usr/bin/python3.10  1         manual mode
  2            /usr/bin/python3.8   2         manual mode

Press <enter> to keep the current choice[*], or type selection number:

Ingresa el número de la versión a la que quieres cambiar.

3.3 Cambiar manualmente el enlace simbólico

También puedes cambiar manualmente el enlace simbólico en lugar de usar update-alternatives:

sudo ln -sf /usr/bin/python3.10 /usr/bin/python

Esto obliga al comando python a usar python3.10 en todo el sistema.

4. Cómo cambiar versiones de Python por proyecto

Al trabajar con Python en Ubuntu, es posible que desees usar diferentes versiones de Python para diferentes proyectos.
Por ejemplo, un proyecto puede requerir Python 3.10, mientras que otro puede necesitar Python 3.8.
En tales casos, usar entornos virtuales (venv) o pyenv es extremadamente útil.

Esta sección explica cómo cambiar fácilmente las versiones de Python usando entornos virtuales y pyenv.

4.1 Gestionar versiones de Python por entorno usando venv

Python proporciona venv (entornos virtuales) como una función estándar.
Al usar entornos virtuales, puedes gestionar diferentes versiones de Python o bibliotecas dentro de directorios individuales.

Crear un entorno virtual con venv

Mueve al directorio donde deseas crear un entorno virtual, luego ejecuta:

python3 -m venv myenv

Esto crea un entorno virtual llamado myenv.

Activar el entorno virtual

Para activar el entorno virtual, ejecuta:

source myenv/bin/activate

Una vez activado, el prompt de la terminal cambia:

(myenv) user@ubuntu:~/project$

Mientras está activo, se usa la versión de Python específica del entorno.

Verificar la versión de Python dentro del entorno

Para verificar la versión de Python dentro del entorno virtual, ejecuta:

python --version

Desactivar el entorno virtual

Para salir del entorno virtual, ejecuta:

deactivate

Usando este método, puedes gestionar versiones de Python y paquetes de manera independiente para cada proyecto.

4.2 Gestionar versiones de Python usando pyenv

Mientras que venv gestiona Python por proyecto,
si deseas cambiar libremente la versión de Python en todo el sistema, pyenv es muy conveniente.

Instalar pyenv

Primero, instala pyenv.
Para instalar pyenv en Ubuntu, ejecuta:

curl https://pyenv.run | bash

Luego aplica la configuración con:

exec $SHELL

Instalar versiones de Python con pyenv

Para instalar una versión de Python usando pyenv:

pyenv install 3.10.6

Para verificar todas las versiones disponibles:

pyenv install --list

Cambiar versiones de Python con pyenv

Para cambiar la versión de Python global (en todo el sistema):

pyenv global 3.10.6

Para cambiar la versión de Python para un directorio específico:

pyenv local 3.8.10

Verificar la versión actual de Python de pyenv

Para verificar qué versiones de Python está gestionando pyenv, ejecuta:

pyenv versions

Esto te permite gestionar fácilmente diferentes versiones de Python por proyecto.

5. Preguntas frecuentes (Solución de problemas)

Aquí hay preguntas comunes y consejos de solución de problemas al gestionar versiones de Python en Ubuntu.

P1: ¿Cuál es la diferencia entre python y python3?

En Ubuntu, python3 es el estándar, mientras que python puede referirse a Python 2.
Por lo tanto, se recomienda usar python3 --version.

P2: ¿Qué pasa si python --version muestra una versión inesperada?

Puedes cambiar la versión predeterminada de Python con update-alternatives o pyenv.

  • Usando update-alternatives :
    sudo update-alternatives --config python
    
  • Usando pyenv :
    pyenv global 3.10.6
    

P3: ¿Por qué python3 --version funciona pero python no?

El comando python puede no estar instalado.
Crea un enlace simbólico para arreglarlo:

sudo ln -sf /usr/bin/python3 /usr/bin/python

P4: ¿Cómo elimino una versión antigua de Python en Ubuntu?

Primero, lista los paquetes de Python instalados:

apt list --installed | grep python

Para eliminar una versión específica de Python:

sudo apt remove python3.6

P5: ¿Eliminar una versión anterior de Python afectará a Ubuntu?

Algunas herramientas del sistema Ubuntu dependen de versiones específicas de Python.
Verifica con:

python3 --version

Antes de eliminar cualquier cosa, siempre verifica qué está instalado:

apt list --installed | grep python

6. Resumen y artículos recomendados

En esta guía, cubrimos cómo comprobar, cambiar y alternar versiones de Python en Ubuntu.

  • Comprobar la versión de Pythonpython3 --version
  • Cambiar la versión a nivel del sistemaupdate-alternatives o ln -sf
  • Gestionar versiones por proyectovenv o pyenv

Usar pyenv hace que la gestión de versiones de Python sea especialmente fácil.
Si necesitas diferentes versiones de Python en varios proyectos o deseas cambiar la versión predeterminada del sistema, prueba usar pyenv.