Búsqueda de sitios web

Pyenv: instale varias versiones de Python para un proyecto específico


Administrar varias versiones de Python en un sistema Linux no es una tarea fácil, especialmente para los principiantes. A veces, incluso empeora cuando desea desarrollar y ejecutar múltiples proyectos con diferentes versiones de Python en el mismo servidor. Sin embargo, este no debería ser el caso si empleas pyenv.

Lea también: Cómo instalar la última versión de Python 3.6 en Linux

¿Qué es Pyenv?

Pyenv es una herramienta sencilla, potente y multiplataforma para gestionar múltiples versiones de Python en sistemas Linux, que se utilizaba para.

  • Cambiar la versión global de Python por usuario.
  • configurar la versión local de Python por proyecto.
  • Gestión de entornos virtuales creados por anaconda o virtualenv.
  • Anulando la versión de Python con una variable de entorno.
  • Búsqueda de comandos de múltiples versiones de Python y más.

¿Cómo funciona Pyenv?

Por lo general, se usa una única versión predeterminada de Python para ejecutar todas sus aplicaciones, a menos que especifique explícitamente la versión que desea usar dentro de la aplicación. Pero pyenv implementa un concepto simple de usar shims (ejecutables livianos) para pasar su comando a la versión correcta de Python que desea usar, cuando tiene varias versiones instaladas.

Estas shims son insertadas por pyenv en directorios delante de su PATH. Entonces, cuando ejecuta un comando de Python, es interceptado por el shim apropiado y pasado a pyenv, que luego establece la versión de Python especificada por su aplicación y pasa sus comandos junto con la instalación correcta de Python. Esta es una descripción general de cómo funciona pyenv.

En este artículo, mostraremos cómo instalar la última versión de pyenv en Linux. También demostraremos los primeros tres casos de uso enumerados anteriormente.

Cómo instalar Pyenv en Linux

1. Primero instale todos los paquetes necesarios para instalar diferentes versiones de Python desde las fuentes usando el siguiente comando en su respectiva distribución de Linux.

------------ On Debian/Ubuntu/Linux Mint ------------ 
sudo apt install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev

------------ On CentOS/RHEL ------------
yum -y install epel-release
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

------------ On Fedora 22+ ------------
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

2. A continuación, tome el árbol de fuentes pyenv más reciente de su repositorio de Github e instálelo en la ruta $HOME/.pyenv usando el siguiente comando.

git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv

3. Ahora necesita configurar la variable de entorno PYENV_ROOT para que apunte a la ruta donde instaló pyenv y exportarla. Luego agregue $PYENV_ROOT/bin a su PATH para ejecutar la utilidad de línea de comandos pyenv como cualquier otro comando del sistema.

También necesita habilitar shims así como el autocompletado agregando pyenv init a su shell. Haga todas estas cosas en su archivo de inicio de bash $HOME/.bashrc, como se muestra.

vim $HOME/.bashrc 

Copie y pegue las siguientes líneas al final de este archivo.

## pyenv configs
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

4. Una vez que haya realizado los cambios anteriores, puede obtener el archivo $HOME/.bashrc o reiniciar el shell como se muestra.

source $HOME/.bashrc
OR
exec "$SHELL"

Cómo instalar varias versiones de Python en Linux

5. En este punto, debería estar listo para comenzar a usar pyenv. Antes de instalar cualquier versión de Python, puede ver todas las versiones disponibles con este comando.


pyenv install -l

6. Ahora puedes instalar varias versiones de Python a través de pyenv, por ejemplo.

pyenv install 3.6.4
pyenv install 3.6.5

7. Para enumerar todas las versiones de Python disponibles para pyenv, ejecute el siguiente comando. Esto solo mostrará las versiones instaladas a través del propio pyenv.

pyenv versions

8. Puede verificar la versión global de Python con el siguiente comando; en este momento, la versión predeterminada debería ser la establecida por el sistema, no pyenv.

pyenv global

Puede configurar la versión global de Python usando el comando pyenv.

pyenv global 3.6.5
pyenv global

9. Ahora puede configurar la versión local de Python por proyecto; por ejemplo, si tiene un proyecto ubicado en $HOME/python_projects/test, puede configurar la versión de Python usando el siguiente comando.

cd python_projects/test
pyenv local 3.6.5
pyenv version		#view local python version for a specific project 
OR
pyenv versions

10. Pyenv gestiona entornos virtuales a través del complemento pyenv-virtualenv que automatiza la gestión de entornos virtualenvs y conda para Python. en Linux y otros sistemas similares a UNIX.

Puede comenzar instalando este complemento usando los siguientes comandos.

git clone https://github.com/yyuu/pyenv-virtualenv.git   $HOME/.pyenv/plugins/pyenv-virtualenv
source $HOME/.bashrc

11. Ahora crearemos un entorno virtual de prueba llamado venv_project1 en un proyecto llamado project1 de la siguiente manera.

cd python_projects
mkdir project1
cd project1
pyenv virtualenv 3.6.5 venv_project1

12. Ahora, cuando enumere todas las versiones de Python, sus entornos virtuales, así como sus versiones locales de Python, también deberían aparecer en la lista, como se muestra en la captura de pantalla.

pyenv versions

13. Para activar un virtualenv, por ejemplo venv_project1, escriba el siguiente comando.

pyenv activate venv_project1

Nota: Es posible que reciba el siguiente mensaje mientras utiliza la última versión del complemento pyenv-virtualenv por primera vez.

pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.

Agregue la línea export PYENV_VIRTUALENV_DISABLE_PROMPT=1 en su archivo $HOME/.bashrc, donde agregó otras configuraciones de pyenv, y obtenga el archivo para simular. el comportamiento que se enfatiza.

14. Para desactivar el virtualenv activado, ejecute este comando.

pyenv deactivate

Para obtener más información, puede enumerar todos los comandos de pyenv usando el siguiente comando.

pyenv commands

Para obtener más información, vaya al repositorio de pyenv en Github: https://github.com/pyenv/pyenv

Lea también: Cómo instalar varias versiones de PHP para varios sitios web

Usar pyenv es realmente así de simple. En esta guía, mostramos cómo instalarlo y también mostramos algunos de sus casos de uso para administrar múltiples versiones de Python en un sistema Linux. Utilice el formulario de comentarios a continuación para hacer cualquier pregunta o compartir sus opiniones sobre esta herramienta.