O pyenv é uma ferramenta popular de linha de comando que permite instalar, gerenciar e alternar entre várias versões do Python no mesmo sistema sem depender de ambientes virtuais.
O que o pyenv resolve
Seu sistema operacional (linux ou Mac) geralmente vem com uma versão padrão do Python. Contudo ele vem com uma versão específica instalada. Por exemplo, você pode precisar do Python 3.8 para um projeto, do 3.12 para outro e talvez também do PyPy ou Miniconda.
Instalar várias versões do Python manualmente é trabalhoso. Além disto, alterar a versão global do Python geralmente quebra as ferramentas do sistema.
O pyenv resolve tudo isso permitindo que você:
- Instale várias versões: pyenv install 3.12.1
- Defina a versão global: pyenv global 3.10.0
- Defina uma versão local (por projeto): pyenv local 3.9.18
- Use automaticamente a versão correta com base no arquivo .python-version
Instalação passo a passo do PyENV no Ubuntu
As instruções a seguir irão ajudar na instalação do PyENV no Ubuntu. Estes passos foram testados no Ubuntu 22 e 24.
1) Atualizar pacotes do sistema: Comece atualizando a lista de pacotes do sistema para garantir o acesso às versões mais recentes dos softwares:
sudo apt update
2) Instalar dependências necessárias: O PyENV pode exigir certas dependências para funcionar de forma otimizada. Você pode instalar esses pacotes usando o seguinte comando:
sudo apt install -y 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
3) Instalando o PyENV: Use o comando abaixo para fazer o download e executar o script de instalação do PyENV:
curl https://pyenv.run | bash
Nota: pode ser que você precise instalar git no seu computador
sudo apt install git
4) Configurando o ambiente: Você precisa alterar .bashrc como mostrado abaixo. Estas instruções irão aparecer ao final do script acima.
echo -e 'export PYENV_ROOT="$HOME/.pyenv"\nexport PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo -e 'eval "$(pyenv init --path)"\neval "$(pyenv init -)"' >> ~/.bashrc