Pyenv - Instale múltiples 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 emplea pyenv .

Pyenv es una herramienta simple, potente y multiplataforma para administrar múltiples versiones de Python en sistemas Linux, que se usó para.

  • Switching the global Python version on a per-user basis.
  • setting the local Python version on per-project basis.
  • Managing of virtual environments created by anaconda or virtualenv.
  • Overriding the Python version with an environment variable.
  • Searching commands from multiple versions of Python and more.

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 ligeros) para pasar su comando a la versión de Python correcta que desea usar, cuando tiene varias versiones instaladas.

Estas calzas están insertadas por pyenv en un directorio frente a su PATH . Entonces, cuando ejecuta un comando de Python, es interceptado por el shim adecuado y se pasa a pyenv , que luego establece la versión de Python que ha especificado su aplicación, y pasa sus comandos a lo largo de la instalación legítima de Python. Este es un resumen 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 tres primeros casos de usos mencionados anteriormente.

Cómo instalar Pyenv en Linux

1. Primero instale todos los paquetes necesarios para instalar diferentes versiones de Python de 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 último árbol de fuentes pyenv de su repositorio Github e instálelo en la ruta /home/mial/.pyenv usando la siguiente mando.

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

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

También debe habilitar shims así como autocompletar agregando el pyenv init a su shell. Haga todas estas cosas en el archivo de inicio de bash /home/mial/.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 crear el archivo /home/mial/.bashrc o reiniciar el shell como se muestra.

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

Cómo instalar múltiples 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 puede instalar varias versiones de Python a través de pyenv , por ejemplo.

$ pyenv install 3.6.4
$ pyenv install 3.6.5

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

$ pyenv versions

8. Puede verificar la versión global de Python con el siguiente comando. En este momento, la versión predeterminada debe 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/mial/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 administra entornos virtuales a través del pyenv-virtualenv plugin que automatiza la administración de 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 enumera todas las versiones de Python, sus entornos virtuales, así como sus versiones locales de python, también deben aparecer, 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

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 exportar PYENV_VIRTUALENV_DISABLE_PROMPT = 1 en su archivo /home/mial/.bashrc , donde agregó otras configuraciones pyenv , y busque el archivo Para simular el comportamiento enfatizado.

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 Github: https://github.com/pyenv/pyenv

Usar pyenv es realmente así de simple. En esta guía, mostramos cómo instalarlo, así como 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 preguntas o compartir sus opiniones sobre esta herramienta.