Trabajar con múltiples versiones de Python
24-10-2022
He visto últimamente lo complicado que se hace trabajar adecuadamente con
multiples repositorios o diferentes versiones de Python usando pipenv
.
Por eso he creado esta guía de Python usando pyenv y pipenv, los cuales sirven para tener un mayor control tanto de la versión cómo de las dependencias evitando errores, en este caso Ubuntu 22.04 con zsh.
¿Cómo funciona?
Toda la gestión de versiones de Python es gestionada usando pyenv
, mientras
que pip el gestor de
dependencias para el entorno global de la versión de Python. Asegurándonos
siempre primero de mirar la versión python -V
, vamos a instalar y
pipenv que sería un gestor de entornos con
dependencias, sirve para instalar las cosas en el entorno en vez del entorno
global y que las dependencias no se choquen.
En la documentación de los repositorios hay más información para otras versiones.
Pyenv
Lo primero a instalar es pyenv
, idea usando el siguiente comando
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
Una vez clonado lo siguiente es añadir el comando a zsh
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc echo 'eval "$(pyenv init -)"' >> ~/.zshrc
Actualizamos el fichero ~/.zshrc
source ~/.zshrc
Ahora claro ya lo tenemos, si el proyecto nos requiere python 3.7, por ejemplo, vamos a instalarlo, pero antes tenemos que instalar las dependencias de Python.
sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \ libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
pyenv install 3.7.15
Ahora ya podemos mirar si ha cambiado la versión, si anteriormente no tenías python pone esta versión como global, pero si ya había uno no la cambia.
python3 --version
Python 3.7.15
Perfecto ya tenemos la versión que necesitamos, en caso de querer cambiarla según el ámbito y que no sea global, dejo el link a la documentación.
🚨 Cuidado con cambiar la version global, otros programas del sistema pueden estar utilizándola.
Pipenv
Si acabas de instanciar la versión hay que instalar pip
y pipenv
para poder
usarlo.
python -m pip install -U pip
pip install pipenv
Finalmente dentro de la proyecto desde la terminal a la misma altura que el
Pipfile
(fichero que contiene las dependencias) instalamos sus dependencias y
se creará un entorno con el nombre del proyecto al ejecutar...
pipenv install --dev
Nota si ya tenias un entorno de pipenv creado anteriormente, recomiendo borrarlo y volver a instalar.
Gracias por llegar hasta aquí, espero que todo vaya bien y a darle Python