Tutoriales

Instale múltiples versiones de Python en Ubuntu usando Pyenv

Si está explorando proyectos y paquetes basados ​​en Python, es posible que eventualmente encuentre situaciones que requieran diferentes versiones de Python. Encontré esto al intentar instalar la biblioteca PyCoral, que solo funciona con las versiones Python 3.6 a 3.9, y mi sistema tiene Python 3.11.

El beneficio es que no necesita instalar una versión existente de Python proporcionada por su distribución e instalar una nueva versión.

Puede instalar varias versiones de Python a través de una herramienta llamada este . En este tutorial, le mostraré cómo instalar y usar esta herramienta para obtener múltiples versiones de Python simultáneamente en sus distribuciones basadas en Ubuntu y Debian.

Instalar pyenv en Ubuntu

Debido a que pyenv construye Python a partir del código fuente, necesita instalar las dependencias de compilación para usar pyenv.

En distribuciones basadas en Ubuntu y Debian, puede utilizar este comando para obtener todos los paquetes necesarios.

sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl

Es posible que algunos de los paquetes anteriores ya estén instalados.

Una vez que tengas las dependencias, puedes instalar pyenv usando el script oficial:

curl  | bash

Descargará el script y lo ejecutará.

Cuando finalice el script, debería darle algunas instrucciones para cargar pyenv automáticamente. Esta salida depende del shell que utilice. Para mí, bash muestra:

# Load pyenv automatically by appending
# the following to 
# ~/.bash_profile if it exists, otherwise ~/.profile (for login shells)
# and ~/.bashrc (for interactive shells) :

export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

Entonces, edité ~/.bashrc archivo y coloque el código mencionado al final del mismo.

Una vez completado, vuelva a cargar el shell o reinicie la terminal usando el siguiente comando:

exec "$SHELL"

Verifiquemos si pyenv está instalado en su sistema verificando su versión:

pyenv --version

Si ve un número en lugar de un error, significa que ha instalado pyenv en Ubuntu Linux. Es hora de ver cómo usarlo.

Instale diferentes versiones de Python usando pyenv

Puede enumerar las diversas instalaciones de Python y entornos virtuales proporcionados por pyenv usando el siguiente comando:

pyenv --list

Sin embargo, mostrará una gran producción y todos los productos que quizás no le interesen.

Si está interesado en las distintas versiones de Python3, utilice la magia de regex y grep. Supongamos que está interesado en las versiones 3.6 a 3.9 de Python. Para hacer esto, use:

pyenv install --list | grep " 3\.[6789]"

Sigue siendo una lista grande, pero no tanto como la que has visto antes.

Hice esto para probar el proyecto Coral usando la biblioteca PyCoral, que solo funciona con Python 3.6 hasta Python 3.9. Si observo el estado de las versiones de Python, la 3.9 parece ser una buena versión. Yo elegiría 3.9.19:

pyenv install -v 3.9.19

Dado que Python se construye a partir del código fuente, puede llevar algún tiempo y el resultado será grande. Solo asegúrate de que no cause errores.

Ubicación de la versión de Python

Las diferentes versiones de Python instaladas usando pyenv se encuentran en ~/.pyenv/versions/ Tabla de contenido.

abhishek@raspberrypi:~ $ ls ~/.pyenv/versions/
3.9.19

Listar las versiones de Python instaladas

Puede ver otras versiones de Python usando el siguiente comando:

pyenv versions

Esto debería mostrar la versión del sistema (la versión de Python instalada por su distribución) y las otras versiones instaladas por pyenv:

* system (set by /home/abhishek/.pyenv/version)
  3.9.19

💡

El asterisco * en el resultado del comando anterior indica la versión de Python actualmente activa.

Utilice otras versiones de Python

Si sólo deseas ejecutar algo con una versión específica de Python, puedes usarlo así:

pyenv exec python3.9.19 test.py

Alternativamente, puedes cambiar la versión predeterminada de Python a tu elección:

pyenv global 3.9.19

Puede confirmar que la versión activa de Python ha cambiado mirando la entrada con * en la lista de versiones:

abhishek@itsfoss:~ $ pyenv global 3.9.19
abhishek@itsfoss:~ $ pyenv versions     
  system
* 3.9.19 (set by /home/abhishek/.pyenv/version)
abhishek@raspberrypi:~ $ 

Puede volver a la versión del sistema más tarde:

pyenv global system

Eliminar versiones adicionales de Python

Esto también es muy sencillo. Puedes eliminar su carpeta:

rm -rf ~/.pyenv/versions/

Alternativamente, use el comando pyev de esta manera:

pyenv uninstall 

Prefiere usar entornos virtuales

Incluso si tiene varias versiones de Python instaladas, en este tutorial le mostraré cómo instalar y utilizar esta herramienta para obtener varias versiones de Python simultáneamente en distribuciones basadas en Ubuntu y Debian. No juegues con los paquetes a nivel del sistema.

Digamos que quiero usar Python 3.9.19 para un proyecto llamado Coral. Crearé un entorno virtual para este proyecto (no es necesario que los nombres coincidan):

pyenv virtualenv 3.9.19 coral

Ahora, cambio a este entorno virtual:

pyenv local coral

Puede verificar que se esté utilizando el entorno virtual:

abhishek@itsfoss:~ $ pyenv which python
/home/abhishek/.pyenv/versions/coral/bin/python

Tenga en cuenta que todavía no puede utilizar «apt install python-package-name» y esperar que se instale con una versión diferente de Python en el entorno virtual. Para hacer esto tienes que usar pip:

pip install python-package-name

Esto instalará el paquete Python mencionado en un entorno virtual específico utilizando la versión de Python que especifique.

💬 Espero que hayas disfrutado de este tutorial sobre cómo administrar diferentes versiones de Python en Ubuntu. Aunque no soy un experto en Python, intentaré ayudarte si tienes alguna pregunta.

LEER  Cómo configurar Chrooted SFTP en Linux

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba