https://a.storyblok.com/f/270183/1368x665/4572455f49/python-virtual-environments.png

Um guia completo sobre como trabalhar com ambientes virtuais em Python

Publicado em May 23, 2024

Tempo de leitura: 5 minutos

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 virtualenv

  • Criando um ambiente:

    • Acesse o diretório do seu projeto no terminal.

    • Crie um novo ambiente virtual usando o virtualenv:

virtualenv myenv

Substitua myenv pelo nome do ambiente desejado.

  • Ativação:

    • No Windows:

myenv\Scripts\activate

  • No Unix ou no macOS:

source myenv/bin/activate

O 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 deactivate comando:

deactivate

Isso 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 myenv

Substitua myenv pelo nome do ambiente desejado.

  • Ativação

    • No Windows:

myenv\Scripts\activate.bat

  • No Unix ou no macOS: bash source myenv/bin/activate Depois de ativados, você pode trabalhar nos ambientes virtuais ativos da mesma forma que faria em um ambiente Python comum. Você pode instalar pacotes usando pip, executar scripts em Python e gerenciar dependências.

  • Instalar pacotes no ambiente virtual

 pip install package_name

  • Desativação:

  • Basta usar o deactivate comando:

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/activate
  • No Windows:

project1_venv\Scripts\activate

3. (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. vonage

5. Listar os pacotes instalados

pip list

6. 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\activate

8. (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

9. 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!

Compartilhar:

https://a.storyblok.com/f/270183/384x384/b68093ec17/diana-pham.png
Diana PhamRepresentante de Desenvolvedores

Diana é defensora de desenvolvedores na Vonage. Ela gosta de comer ostras frescas.