pyenv
https://github.com/pyenv/pyenv
Pyenv le permite administrar múltiples versiones de Python sin sudo para un solo usuario, al igual que Node.js NVM y Ruby RVM .
Instalar Pyenv:
curl https://pyenv.run | bash
Luego agregue a su .bashrc
:
export PATH="${HOME}/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Encuentra la versión de Python para instalar:
pyenv install --list
Instale la versión de Python que desea:
# Increase the chances that the build will have all dependencies.
# https://github.com/pyenv/pyenv/wiki/Common-build-problems
sudo apt build-dep python3
sudo apt-get 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 python-openssl git
# Build and install a Python version from source.
pyenv install 3.8.0
Lista de versiones disponibles de Python:
pyenv versions
Ahora tenemos:
* system (set by /home/cirsan01/.pyenv/version)
3.8.0
Seleccione una versión diferente de Python:
pyenv global 3.8.0
python --version
python3 --version
Ambas salidas:
Python 3.8.0
Ahora podemos proceder a instalar y usar paquetes normalmente:
pip install cowsay
python -c 'import cowsay; cowsay.tux("Python is fun")'
cowsay 'hello'
Podemos confirmar que todo está instalado localmente en nuestro entorno limpio con:
python -c 'import cowsay; print(cowsay.__file__)'
which cowsay
Por uso de proyecto
En la sección anterior, vimos cómo usar pyenv en una configuración global.
Sin embargo, lo que generalmente desea es establecer una versión de paquete y python específica para cada proyecto. Asi es como se hace.
Primero instale la versión de Python deseada como antes.
Luego, desde el directorio de su proyecto, configure la versión de Python deseada con:
pyenv local 3.8.0
que crea un archivo .python-version
contiene la cadena de versión.
Y ahora instalemos un paquete localmente solo para nuestro proyecto: TODO: no parece una buena manera: /programming/30407446/pyenv-choose-virtualenv-directory/59267972#59267972
Ahora, cuando alguien quiera usar su proyecto, hará:
pyenv local
que establece la versión de Python en la correcta.
Hilos relacionados:
Probado en Ubuntu 18.04, pyenv 1.2.15.