Executando verificação de segurança...
6

Gerenciando Múltiplas Versões do Python e Ambientes Virtuais com Pyenv— 9 passos

Quando se trabalha em diversos projetos Python, é comum a necessidade de alternar entre diferentes versões do Python e isolar as dependências de cada projeto. Uma ferramenta poderosa que permite fazer isso de forma eficiente é o pyenv, combinado com o gerenciamento de ambientes virtuais. Neste post, vamos explorar como instalar e usar o pyenv em um sistema Ubuntu, além de detalhar como os ambientes virtuais criados pelo pyenv são organizados.

1 - Instalando Dependências Necessárias

Antes de instalar o pyenv, é essencial instalar algumas dependências que permitirão a compilação de várias versões do Python. Abra um terminal e execute o seguinte comando:

sudo apt update && sudo apt 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

2 - Instalando o Pyenv

A maneira mais simples de instalar o pyenv é através do script de instalação automática. Execute o seguinte comando no terminal:

curl https://pyenv.run | bash

Esse comando baixa e executa o script, instalando o pyenv e alguns plugins úteis, como pyenv-virtualenv.

3 - Configurando o Shell

Após a instalação, você precisa adicionar o pyenv ao seu PATH e inicializá-lo automaticamente ao abrir um terminal. Adicione as seguintes linhas ao arquivo de configuração do seu shell (.bashrc para Bash ou .zshrc para Zsh):

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"

Para aplicar as alterações, execute source ~/.bashrc ou source ~/.zshrc, dependendo do seu shell.

4 - Instalando Versões do Python com Pyenv

Para instalar uma nova versão do Python, use o comando pyenv install, seguido pelo número da versão. Por exemplo:

pyenv install 3.10.13

4.1 - Atenção: possível erro

No meu ubuntu, apresentou o seguinte erro ao tentar instalar o python 3.10.13:

Installing Python-3.10.13...
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named '_bz2'
....
ModuleNotFoundError: No module named '_curses'
.....

Uma solução seria instalar também as libs abaixo:

sudo apt-get update
sudo apt-get install -y libbz2-dev libncurses5-dev libreadline-dev libffi-dev libssl-dev

Agora é só tentar instalar o Python novamente:

pyenv install 3.10.13

5 - Gerenciando a versão do Python

Para definir uma versão do Python como padrão para todo o sistema (usuário), use:

pyenv global 3.10.13

Para definir uma versão do Python para um diretório específico (projeto), navegue até o diretório e use:

pyenv local 3.10.13

Isso criará um arquivo .python-version no diretório especificado, definindo a versão do Python para esse diretório.

6. Verificar a versão do Python

Para verificar a versão atual do Python que está sendo usada, você pode usar:

python --version

Ou para verificar a versão do Python gerenciada pelo pyenv:

pyenv version

7 - Gerenciamento de Ambientes Virtuais

O pyenv também permite criar ambientes virtuais para isolar as dependências de cada projeto. Para criar um ambiente virtual para a versão 3.10.13 do Python, execute:

pyenv virtualenv 3.10.13 nome_do_ambiente

7.1 - Definindo o ambiente na pasta local

No diretorio do projeto, você pode setar o ambiente criado anteriormente:

pyenv local nome_do_ambiente

8 - Onde os Ambientes Virtuais são Armazenados?

Os ambientes virtuais criados pelo pyenv são armazenados no diretório ~/.pyenv/versions/. Cada ambiente virtual é um subdiretório dentro dessa pasta, contendo sua própria instalação do Python e bibliotecas. Por exemplo, um ambiente virtual chamado nome_do_ambiente usando Python 3.10.13 estará localizado em ~/.pyenv/versions/3.10.13/envs/nome_do_ambiente/.

9 - Ativando e Desativando Ambientes Virtuais

Para ativar um ambiente virtual, navegue até o diretório do seu projeto e execute:

pyenv activate nome_do_ambiente

Para desativá-lo, simplesmente execute:

pyenv deactivate

Conclusão

O pyenv, combinado com o gerenciamento de ambientes virtuais, oferece uma solução robusta para trabalhar com múltiplas versões do Python e isolar as dependências dos projetos. Ao seguir os passos descritos, você pode facilmente alternar entre diferentes versões do Python e manter seus projetos organizados e isolados.

Carregando publicação patrocinada...
1
1