Ok, vamos detalhar como usar o `pyenv` para gerenciar suas versões do Python. O `pyenv` é uma ferramenta poderosa, especialmente no macOS e Linux, para instalar e alternar entre múltiplos interpretadores Python. **1. Instalação** O processo de instalação varia ligeiramente dependendo do seu sistema operacional. * **macOS (usando Homebrew - Recomendado):** ```bash brew update brew install pyenv ``` Após a instalação, você precisa adicionar o `pyenv` ao seu perfil de shell (como `~/.zshrc`, `~/.bash_profile` ou `~/.bashrc`). A saída do comando `brew install pyenv` geralmente fornecerá as linhas exatas a serem adicionadas. Normalmente, é algo assim: ```bash # Adicione estas linhas ao seu arquivo de perfil de shell (~/.zshrc, ~/.bash_profile, etc.) export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init --path)" eval "$(pyenv init -)" # Para shims ``` Depois de adicionar essas linhas, reinicie seu terminal ou execute `source ~/.seu_perfil_de_shell` (por exemplo, `source ~/.zshrc`). * **Linux (usando pyenv-installer):** ```bash curl https://pyenv.run | bash ``` Este script instalará o `pyenv` e seus plugins. Ele também informará as linhas que você precisa adicionar ao seu perfil de shell (`~/.bashrc`, `~/.zshrc`, etc.) para configurar seu ambiente de shell. Adicione essas linhas e reinicie seu terminal ou "source" seu arquivo de perfil. * **Windows:** O `pyenv` é projetado principalmente para sistemas tipo Unix. Para Windows, a ferramenta recomendada é o `pyenv-win`. Você pode encontrar as instruções de instalação em sua página do GitHub: [https://github.com/pyenv-win/pyenv-win](https://github.com/pyenv-win/pyenv-win). **Importante:** Após a instalação e configuração do seu perfil de shell, feche e reabra seu terminal ou execute o comando `source` para o seu arquivo de perfil para garantir que o `pyenv` seja carregado corretamente. Você pode verificar executando `pyenv --version`. **2. Comandos Chave do `pyenv`** Aqui estão os comandos mais comuns que você usará: * **`pyenv install --list`**: Lista todas as versões do Python disponíveis que o `pyenv` pode instalar. Isso inclui CPython, Miniconda, Anaconda, PyPy, etc. ```bash pyenv install --list ``` * **`pyenv install <version>`**: Instala uma versão específica do Python. Substitua `<version>` por um número de versão da lista (por exemplo, `3.9.10`, `3.10.4`, `2.7.18`). Isso pode levar algum tempo, pois geralmente compila o Python a partir do código-fonte. Você pode precisar de bibliotecas de desenvolvimento instaladas em seu sistema primeiro (verifique a documentação do pyenv para pré-requisitos para o seu SO). ```bash pyenv install 3.9.10 pyenv install 3.10.4 ``` * **`pyenv versions`**: Lista todas as versões do Python atualmente instaladas pelo `pyenv`. Também mostra qual versão está atualmente ativa com um asterisco (`*`). ```bash pyenv versions ``` * **`pyenv global <version>`**: Define a versão global do Python para o seu usuário. Esta é a versão padrão usada em todos os lugares, a menos que seja substituída por uma configuração local ou de shell. ```bash pyenv global 3.10.4 # Define 3.10.4 como o padrão globalmente ``` * **`pyenv local <version>`**: Define a versão do Python para o diretório atual e seus subdiretórios. Esta é a maneira mais comum de gerenciar versões específicas do projeto. O `pyenv` cria um arquivo `.python-version` no diretório atual para lembrar essa configuração. ```bash cd my_project_directory pyenv local 3.9.10 # Define 3.9.10 para este projeto ``` * **`pyenv shell <version>`**: Define a versão do Python apenas para a sessão de shell atual. Essa configuração tem precedência sobre `local` e `global`, mas é temporária. ```bash pyenv shell 3.8.12 # Usa 3.8.12 apenas para esta sessão de terminal ``` * **`pyenv uninstall <version>`**: Desinstala uma versão específica do Python. ```bash pyenv uninstall 3.9.10 ``` **3. Como o `pyenv` Funciona (Shims)** O `pyenv` funciona inserindo um diretório de "shims" no início do seu `PATH`. Quando você executa um comando como `python`, `pip`, etc., seu shell encontra o shim do `pyenv` primeiro. O shim então descobre qual versão do Python deve estar ativa com base nas configurações `shell`, `local` e `global`, e redireciona o comando para o executável Python correto instalado pelo `pyenv`. **4. Usando `pyenv` com Ambientes Virtuais (`venv`)** Embora o `pyenv` gerencie a _versão do interpretador_ Python, ainda é uma boa prática usar ambientes virtuais (`venv` ou `virtualenv`) para gerenciar as _dependências de pacotes_ específicas do projeto. Aqui está um fluxo de trabalho típico: 1. **Instale a versão do Python com `pyenv`:** ```bash pyenv install 3.9.10 ``` 1. **Navegue até o diretório do seu projeto:** ```bash cd ~/my_python_project ``` 1. **Defina a versão local do Python para o projeto:** ```bash pyenv local 3.9.10 ``` Agora, se você executar `python --version` neste diretório, ele deverá mostrar `Python 3.9.10`. 1. **Crie um ambiente virtual usando a versão selecionada do Python:** ```bash python -m venv .venv ``` (Isso cria um ambiente virtual chamado `.venv` dentro do diretório do seu projeto usando o Python 3.9.10 gerenciado pelo `pyenv`). 1. **Ative o ambiente virtual:** ```bash source .venv/bin/activate ``` (Seu prompt geralmente mudará para indicar o ambiente ativo, por exemplo, `(.venv) …`) 1. **Instale as dependências do projeto:** ```bash pip install -r requirements.txt ``` Esses pacotes serão instalados no ambiente `.venv`, isolados de outros projetos e do seu Python do sistema. 1. **Desative o ambiente quando terminar:** ```bash deactivate ``` Ao combinar `pyenv` (para a versão do interpretador) e `venv` (para isolamento de pacotes), você obtém controle robusto sobre seus ambientes de desenvolvimento Python.