pyenv
https://github.com/pyenv/pyenv
O Pyenv permite gerenciar várias versões do Python sem o sudo para um único usuário, assim como o Node.js. NVM e Ruby RVM .
Instale o Pyenv:
curl https://pyenv.run | bash
Em seguida, adicione ao seu .bashrc
:
export PATH="${HOME}/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Encontre a versão do Python para instalar:
pyenv install --list
Instale a versão python que você deseja:
# 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
Listar as versões disponíveis do Python:
pyenv versions
Agora temos:
* system (set by /home/cirsan01/.pyenv/version)
3.8.0
Selecione uma versão python diferente:
pyenv global 3.8.0
python --version
python3 --version
Ambas as saídas:
Python 3.8.0
Agora podemos instalar e usar pacotes normalmente:
pip install cowsay
python -c 'import cowsay; cowsay.tux("Python is fun")'
cowsay 'hello'
Podemos confirmar que tudo está instalado localmente em nosso ambiente limpo com:
python -c 'import cowsay; print(cowsay.__file__)'
which cowsay
Por uso do projeto
Na seção anterior, vimos como usar o pyenv em uma configuração global.
No entanto, o que você normalmente deseja é definir uma versão específica do pacote e python por projeto. É assim que se faz.
Primeiro instale a versão desejada do Python como antes.
Em seguida, de dentro do diretório do projeto, defina a versão desejada do python com:
pyenv local 3.8.0
que cria um arquivo .python-version
contendo a sequência de versões.
E agora vamos instalar um pacote localmente apenas para o nosso projeto: TODO: não existe uma maneira agradável: /programming/30407446/pyenv-choose-virtualenv-directory/59267972#59267972
Agora, quando alguém quiser usar seu projeto, ele fará:
pyenv local
que define a versão do Python para a correta.
Tópicos relacionados:
Testado no Ubuntu 18.04, pyenv 1.2.15.