Como usar Ambientes Virtuais em Python — Parte 2 (incluindo VS Code)

Ricardo Grego
Data with Science & Analytics
9 min readAug 7, 2023

Se você trabalha com programação em Python, sabe o quão poderosos e versáteis são os pacotes, também chamados de bibliotecas, disponíveis para essa linguagem. E se trabalha com diversos projetos na mesma máquina (e a resposta provavelmente é “sim”), é fundamental aprender a utilizar ambientes virtuais, uma ferramenta que permite criar ambientes isolados para cada projeto, evitando conflitos de pacotes e facilitando a reprodutibilidade do código.

Na Parte 1 deste artigo abordamos os conceitos básicos sobre ambientes virtuais e as necessidades de utilizá-los.

Nesta Parte 2 explicamos o passo a passo para implementar ambientes virtuais em Python e utilizá-los tanto em linha de comando quanto no VS Code.

Gerenciamento de ambientes e de pacotes

Como falamos na Parte 1, existem várias formas de se trabalhar com ambientes virtuais em Python, e a que eu achei mais eficiente foi a seguinte:

  1. Conda para gerenciar ambientes virtuais
  2. Pip para gerenciar pacotes dentro dos ambientes

O Conda tem um sistema de gerenciamento de ambientes virtuais muito bom. Já o Pip tem o maior e mais atualizado repositório de pacotes para Python.

Eu editei a Parte 1 do artigo para falar de algumas soluções alternativas e explicar o motivo de não tê-las adotado.

Conda < Miniconda < Anaconda

Antes de falar da instalação do Conda, vamos definir melhor algumas coisas:

Conda

É o gerenciador de pacotes e ambientes virtuais open-source.

Anaconda

Existe uma confusão sobre a diferenciação do Anaconda e o Conda, e a tendência de achar que são a mesma coisa. Para começar a explicar a confusão, existe a empresa Anaconda e o Anaconda distribuição de Python. A empresa Anaconda é responsável pelo Anaconda distribuição de Python, pelo Conda, por um repositório de pacotes de Python e por outros softwares que levam a marca Anaconda.

O Anaconda é uma distribuição de Python e R com foco em Ciência de Dados. Essa distribuição já inclui o Conda, o Anaconda Navigator, e mais 250 pacotes relacionados à Ciência de Dados. Isso resulta em mais de 3GB de espaço em disco para a instalação, o que é desnecessário mesmo para usos que de aplicação intensa em Ciência de Dados. Mesmo para quem pretende utilizar pacotes de Ciência de Dados eu recomendo usar o Miniconda, e instalar em cada ambiente virtual apenas os pacotes que tiver necessidade.

Miniconda

O Miniconda é uma versão resumida (bem resumida) do Anaconda, um pacote de instalação mínima do Conda. Ele inclui apenas uma versão do Python, o Conda, alguns pacotes dos quais eles dependem, e alguns pacotes utilitários, como zip e pip (sim, o mesmo pip que usaremos para gerenciamento de pacotes).

Quem distribui o Miniconda é a empresa Anaconda, a mesma responsável pelo Anaconda distribuição de Python. Por isso você verá no software de instalação do Miniconda o logo do Anaconda.

Documentação do Planemo

Instalação do Miniconda

No site de documentação do Miniconda localize a sessão com os instaladores mais recentes para seu sistema operacional, faça download e o execute.

Os exemplos a seguir considerarão que a instalação é em uma máquina com Windows 11.

início da instalação do Miniconda

Possivelmente você vai querer fazer a instalação apenas para você, e não para todos os usuários da máquina que está usando.

opção de usuários para instalação do Miniconda

Também é recomendável seguir as configurações sugeridas da instalação, como,

  • Diretório de instalação:
diretório de instalação do Miniconda
  • Não adicionar ao PATH:
opção de adiçõ ao path na instalação do Miniconda
  • Não registrar o Python da instalação como Python padrão (apesar de estar escrito “recommended”, se você já tiver uma instalação do Python na máquina isso pode gerar algum conflito.
opção de Python default na instalação do Miniconda

Aqui todas as opções finais selecionadas:

opções na instalação do Miniconda

Agora você já terá o Conda instalado pelo Miniconda!

instalação do Miniconda completa
instalação do Miniconda finalizada

No “Iniciar” o Windows mostrará dois novos aplicativos CLI (Command-Line Interface) disponíveis, o “Anaconda Prompt (miniconda3)” e o “Anaconda Powershell Prompt (miniconda3)”.

aplicativos de CLI Anaconda Prompt e Anaconda Powershell Prompt

Usando Ambientes Virtuais

Ao abrir um dos dois aplicativos CLI, Anaconda Prompt ou Anaconda Powershell Prompt, você verá uma janela de linha de comando com uma indicação logo no início do prompt escrito (base).

prompt no ambiente base

(base)

base é seu ambiente padrão do Conda. A regra de ouro é: não instale nenhum pacote nem modifique seu ambiente base. Você está usando o Conda justamente para ter diversos ambientes isolados, como vimos na Parte 1, e se a instalação ou desinstalação de algum pacote causar conflito, você pode apagar o ambiente e criar outro. Mas se causar algum problema no seu base será mais difícil resolver (eu precisei desinstalar o Conda, com todos os ambientes que eu já tinha, e instalar tudo novamente).

Com o comando abaixo você pode verificar qual é a versão de Python que ele está usando:

python --version

O Conda User Guide tem uma seção de “Managing environments” bem completa e é lá que eu tiro dúvidas sempre que preciso, mas vou explicar aqui os comandos básicos para criar ambientes e trocar entre eles.

Criação de um ambiente virtual

Para criar um ambiente virtual com o nome play:

conda create --name play

Este comando criará o ambiente e trará a explicação como “entrar” e “sair” dele:

# To activate this environment, use
# $ conda activate play
#
# To deactivate an active environment, use
# $ conda deactivate
criação do ambiente play

Navegando entre ambientes

Agora podemos entrar no ambiente play:

conda activate play

Repare que agora o início do prompt mostra (play).

entrada no ambiente play a partir do ambiente base

O início do prompt sempre mostrará qual é o ambiente ativo.

E para sair dele, retornando ao base:

conda deactivate
retorno ao ambiente base a partir do ambiente play

Criação de ambientes com versões específicas de Python

É comum precisarmos ter uma versão específica do Python que não seja a versão mais recente, e o Conda permite criar ambientes com versões específicas adicionando um parâmetro ao final do comando da criação do ambiente.

Vamos voltar ao base e criar um novo ambiente com a versão 3.10 do Python, com o nome py310:

conda deactivate

conda create --name py310 python=3.10

Agora vamos verificar a versão do Python do base , ativar o novo ambiente e verificar a versão do Python de ambos com os seguintes comandos:

python --version

conda activate py310

python --version
versões do Python nos ambientes base e py310

Caso um ambiente seja criado sem a determinação de uma versão de Python o ambiente não terá uma versão de Python nele e utilizará a versão padrão do sistema. É o caso do ambiente play, que criamos sem especificar uma versão de Python.

Veja como fica a verificação da versão e do path de Python utilizado nos nossos três ambientes: base , play e py310:

versão e path do Python para o ambiente base
versão e path do Python para o ambiente py310
versão e path do Python para o ambiente play

Repare que até o base utiliza uma versão própria, mas o play usa o PATH padrão do sistema.

Listando os ambientes existentes

Algo muito útil é saber quais são os ambientes existentes, com o comando

conda env list

, que pode ser usado a partir de qualquer ambiente.

listagem de ambientes existentes: base, play e py310

Removendo ambientes

Para excluir um ambiente basta usar o comando a seguir, escolhendo corretamente o nome do ambiente:

conda deactivate

conda remove --name py310 --all

E agora o ambiente removido não aparece mais na lista de ambientes:

lista de ambientes mostrando base e play

Instalando pacotes em um ambiente

O grande motivo de criarmos ambientes virtuais é instalar pacotes nele sem que interfiram em outros ambientes.

Para o gerenciamento de pacotes utilizaremos o Pip, mas antes precisamos ativar o ambiente correto. Faremos isso no ambiente play:

conda activate play

pip install numpy pandas

Veja que instalamos os pacotes numpy e pandas no ambiente play:

instalação de numpy e pandas no ambiente play

E podemos verificar os pacotes instalados nos ambientes play e p310 (eu o criei novamente), para garantir que a instalação só ocorreu no play:

conda activate play

pip freeze

conda activate p310

pip freeze
listagem de pacotes instalados nos ambientes play e py310

Usando Ambientes Virtuais no VS Code

Se você usa o VS Code sabe que ele facilita muitos processos (incluindo os de Git), e para ambientes virtuais não seria diferente.

O site do VS Code tem uma página muito didática explicando como criar e escolher ambientes. Portanto, vou me deter em explicar o essencial, que é como escolher um ambiente para execução do seu código.

Esta é uma janela do VS Code com um arquivo .py aberto:

janela de VS Code com destaque para a versão de Python sendo utilizada

Repare que na barra de status, no canto inferior direito, temos indicada a versão do Python utilizada no projeto, e é versão padrão do sistema: 3.11.4.64-bit (microsoft store).

O VS Code normalmente já detecta que o sistema tem o Conda instalado e quais são os ambientes criados.

Ao clicar na versão de Python instalada (no canto inferior direito) é aberta uma seleção de interpretadores já detectados, e lá estão nossos base , play e py310.

janela de VS Code com destaque para a seleção de interpretador Python

Basta selecionar o py310 que a versão do Python instalado nele passará a ser o interpretador padrão para arquivos .py do projeto, com todos os pacotes instalados no ambiente.

janela de VS Code com destaque para a versão de Python sendo utilizada sendo a py310

Para Jupyter Notebooks

Nos notebooks a seleção do ambiente é um pouco diferente.

Repare que com este notebook aberto a barra de status (era no canto inferior direito) não mostra a referência da versão de Python sendo utilizada.

janela de VS Code com destaque para a seleção de kernel

Ao invés disso temos no alto à direita, logo acima da primeira célula, um “Select Kernel”.

Ao clicar nele se abrirá um menu de seleção de kernel. Então selecione primeiro “Python Environments…” e depois o ambiente Conda desejado.

janela de VS Code com destaque para a seleção de kernel
janela de VS Code com destaque para a seleção de kernel

Agora esse notebook utilizará nosso ambiente py310 com a versão de Python e os pacotes instalados nele.

Essa seleção precisa ser feita em cada notebook individualmente.

Informação Bônus!

Tudo isso, desde a instalação do Python na máquina até a configuração do VS Code, foi feito sem precisar reiniciar o Windows.

Ao longo do texto coloquei referências de vários locais da web com mais informações, e aqui abaixo estão todos eles resumidos e alguns adicionais.

Referências

--

--

Ricardo Grego
Data with Science & Analytics

Data Science & Analytics || A curious person. Being curious about learning, parenting, data science, fintech, edtech, neuroscience and health.