
Compartilhar:
Diana é defensora de desenvolvedores na Vonage. Ela gosta de comer ostras frescas.
Um guia completo sobre como trabalhar com ambientes virtuais em Python
Imagine que você é um chef com um prato de assinatura, mas quer experimentar diferentes ingredientes ou técnicas culinárias. Em vez de modificar diretamente sua receita original, você cria cópias idênticas do prato. Cada cópia permite que você experimente novas variações sem alterar a receita original. Dessa forma, você pode explorar diferentes sabores e métodos, mantendo intacta a integridade do seu prato principal. Ambientes virtuais (abreviados como venv neste blog) são como ter várias porções do mesmo prato, assim como um chef.
Neste blog, você aprenderá sobre os ambientes virtuais do Python e como trabalhar com eles.
O que é um ambiente virtual do Python?
Um ambiente virtual do Python é um ambiente autônomo do Python que contém uma versão específica do interpretador do Python e suas dependências associadas.
Esses ambientes oferecem cópias isoladas do seu ambiente Python, permitindo que você instale e teste diferentes pacotes sem afetar seu ambiente Python global. Quando você ativa um ambiente virtual, o interpretador Python e os pacotes instalados nesse ambiente têm prioridade sobre a instalação global do Python e outros ambientes. Dessa forma, seu projeto utiliza automaticamente as versões corretas das dependências.
Por que você precisa de ambientes virtuais?
A instalação de pacotes usando pip em um ambiente virtual é a melhor prática para manter um ambiente global limpo e evitar alterações acidentais nos pacotes do sistema como um todo. Além disso, há alguns cenários em que o uso de ambientes virtuais pode ser benéfico:
Quando vários projetos utilizam versões diferentes de pacotes, os ambientes virtuais no desenvolvimento em Python ajudam a gerenciar as dependências separadamente, evitando conflitos entre os requisitos dos projetos.
Eles também são úteis para criar ambientes de teste isolados, permitindo que você configure dependências específicas para testar novos pacotes sem afetar a configuração principal do Python.
Como usar ferramentas para criar e ativar um ambiente virtual
Existem várias ferramentas diferentes que você pode usar para criar ambientes virtuais, como Conda, Pipenv, Poetrye muito mais. Dois dos mais populares são virtualvenv e venv.
Usando o virtualenv
virtualenv é uma ferramenta de terceiros que se mostra especialmente útil para gerenciar ambientes com versões novas e antigas do Python. A principal diferença em relação a venv é que virtualenv é mais flexível e personalizável, permitindo que você a utilize para criar ambientes virtuais com versões específicas do Python, diretórios de pacotes personalizados e muito mais. Aqui estão alguns exemplos de como usar virtualenv.
Instalação:
Primeiro, certifique-se de que o Python esteja instalado no seu sistema.
Instale o virtualenv usando o pip:
pip install virtualenvCriando um ambiente:
Acesse o diretório do seu projeto no terminal.
Crie um novo ambiente virtual usando o virtualenv:
virtualenv myenvSubstitua myenv pelo nome do ambiente desejado.
Ativação:
No Windows:
myenv\Scripts\activateNo Unix ou no macOS:
source myenv/bin/activateO prompt da linha de comando deve agora exibir o ambiente virtual ativo.
Instalar pacotes no ambiente virtual
pip install package_name
Desativação:
Basta usar o
deactivatecomando:
deactivateIsso fará com que você volte ao ambiente global do Python.
Seguindo essas etapas, você poderá usar com eficácia virtualenv para gerenciar seus projetos em Python em ambientes isolados.
Usando o venv
venv é um módulo integrado ao Python 3, ideal para criar ambientes virtuais leves. Ele cria ambientes isolados que possuem seu próprio interpretador de Python, diretórios de pacotes e variáveis de ambiente. Siga os comandos a seguir para usar venv:
Criação de um ambiente virtual
Acesse o diretório do seu projeto no terminal.
Crie um novo ambiente virtual usando o venv:
python -m venv myenvSubstitua myenv pelo nome do ambiente desejado.
Ativação
No Windows:
myenv\Scripts\activate.batNo Unix ou no macOS:
bash source myenv/bin/activateDepois de ativados, você pode trabalhar nos ambientes virtuais ativos da mesma forma que faria em um ambiente Python comum. Você pode instalar pacotes usandopip, executar scripts em Python e gerenciar dependências.Instalar pacotes no ambiente virtual
pip install package_name
Desativação:
Basta usar o
deactivatecomando:
deactivate
Isso fará com que você volte ao ambiente global do Python.
Como criar ambientes virtuais para dois projetos diferentes
Imagine que você esteja desenvolvendo dois projetos usando o Vonage, cada um dos quais requer uma versão diferente do Flask. Se você tiver o Flask instalado apenas no Python global do seu sistema operacional, não será possível usar duas versões do mesmo pacote. Para resolver esse problema, vamos criar ambientes virtuais para cada projeto seguindo estas etapas:
1. Criar o ambiente virtual para o primeiro projeto:
No Unix/macOS e no Windows:
python3 -m venv project1_venv
2. Ative o ambiente virtual do primeiro projeto:
No Unix/macOS:
source project1_venv/bin/activateNo Windows:
project1_venv\Scripts\activate3. (Opcional) Definir variáveis de ambiente (por exemplo, para o Flask e o Vonage):
No Unix/macOS:
export FLASK_APP=app.py
export VONAGE_API_KEY=your_api_key
export VONAGE_API_SECRET=your_api_secret
No Windows:
set FLASK_APP=app.py
set VONAGE_API_KEY=your_api_key
set VONAGE_API_SECRET=your_api_secret
4. Instale o Flask (por exemplo, versão 1.1.2) e o Vonage para o primeiro projeto:
No Unix/macOS e no Windows:
pip install Flask==1.1. vonage5. Listar os pacotes instalados
pip list6. Crie o ambiente virtual para o segundo projeto:
No Unix/macOS e no Windows:
python -m venv project2_venv
7. Ativar o ambiente virtual do segundo projeto
No Unix/macOS:
source project2_venv/bin/activate
No Windows:
project2_venv\Scripts\activate8. (Opcional) Definir variáveis de ambiente (por exemplo, para o Flask e o Vonage):
No Unix/macOS:
export FLASK_APP=app.py
export VONAGE_API_KEY=your_api_key
export VONAGE_API_SECRET=your_api_secret
No Windows:
set FLASK_APP=app.py
set VONAGE_API_KEY=your_api_key
set VONAGE_API_SECRET=your_api_secret9. Instale uma versão diferente do Flask (por exemplo, a versão 2.0.1) e do Vonage para o segundo projeto
No Unix/macOS e no Windows:
pip install Flask==2.0.1 vonage
10. Listar os pacotes instalados
No Unix/macOS:
pip list
No Windows:
pip list
11. Verifique as versões do Flask e do Vonage:
No Unix/macOS e no Windows:
flask --version
vonage --version
Como evitar o problema do “Mas no meu computador funciona”
Digamos que você tenha criado o aplicativo mais incrível usando o Vonage e agora outras pessoas queiram recriá-lo em seus próprios computadores. Depois de configurar o Vonage, o Flask e outras dependências em seu ambiente virtual, congele as dependências em um requirements.txt arquivo:
pip freeze > requirements.txt
Em seguida, compartilhe seu projeto e inclua o requirements.txt arquivo no repositório. Assim, outras pessoas poderão recriar seu ambiente clonando seu repositório e criando um ambiente virtual no diretório do próprio projeto, executando:
python -m venv venv
source venv/bin/activate # On macOS/Linux
venv\Scripts\activate # On Windows
Por fim, eles instalam as dependências do arquivo requirements.txt executando:
pip install -r requirements.txt
Como desativar o ambiente virtual
Quando terminar de trabalhar em um ambiente virtual, você pode desativá-lo. Digite deactivate no seu terminal ou prompt de comando e pressione Enter. Esse comando desativará o ambiente virtual ativo no momento, fazendo com que sua sessão do shell volte a usar o ambiente global do Python.
deactivate
Resumindo
Os ambientes virtuais do Python são ferramentas inestimáveis para desenvolvedores de Python, oferecendo uma maneira de criar ambientes isolados para diferentes projetos com dependências e configurações específicas. Eles funcionam como cozinhas separadas para chefs, permitindo experimentação e personalização sem afetar a receita principal. Ao seguir as melhores práticas por meio do uso de um módulo do Python como venv ou virtualenv, você pode gerenciar facilmente as dependências, evitar conflitos e manter configurações de projeto organizadas. Seja trabalhando em vários projetos com requisitos diferentes ou testando novos pacotes e configurações, os ambientes virtuais oferecem a flexibilidade e a consistência necessárias para fluxos de trabalho eficazes de desenvolvimento em Python.
Recursos adicionais
Junte-se à festa
Se você gostou deste blog (ou não gostou), por favor, me diga! Siga a equipe de Experiência do Desenvolvedor da Vonage no X, antes conhecido como Twitter, ou participe da canal da Comunidade Vonage no Slack . Se você acabar usando ambientes virtuais em seu aplicativo Python, compartilhe sua experiência e me marque — adoraria saber o que você criou!