11 minutos de leitura

Ambientes virtuais: como utilizar em Python

Por Adriano Soares
Conteúdos do artigo

Neste artigo, você irá entender conceitos importantes de Python e aprender a usar ambientes virtuais na linguagem.

Python é uma linguagem de programação forte graças à sua comunidade ativa, que desenvolve continuamente novas bibliotecas e soluções para nutrir seu ecossistema.

Entretanto, com uma grande comunidade, surgem desafios a serem resolvidos. Por exemplo: como garantir que o trabalho que eu estou desenvolvendo no meu computador seja utilizado por programadores em outras máquinas, outros sistemas operacionais e em outros momentos do tempo?

Algumas das ferramentas utilizadas para solucionar essa questão são os ambientes virtuais e a gestão de dependências, e aqui vamos explicar brevemente o que são cada um deles.

Gestão de dependências

Ao escrevermos um programa em Python, é muito comum que tenhamos de utilizar bibliotecas desenvolvidas pela comunidade, instaladas pelo pip. Isso é ótimo, pois permite uma ampla reutilização de códigos. Por exemplo, se alguém desenvolve uma biblioteca lá no Japão, você pode facilmente utilizá-la aqui, no Brasil.

Contudo, essas bibliotecas são organismos vivos e estão em constante atualização. É por isso que, ao sofrer uma atualização, o seu programa não consegue rodar com a nova versão. Para garantir que isso não ocorra, a única forma é, sempre que terminar de escrever um código, salvar as versões de todas as bibliotecas usadas para, no futuro, poder instalá-las na versão que garanta o bom funcionamento do script.

Isso se chama gestão de dependências, é o armazenamento e compartilhamento das informações de todas as bibliotecas (dependências) necessárias para que seu script funcione.

Mas, na prática, como fazer isso? É aí que entram os ambientes virtuais!

Ambientes virtuais

Agora já sabemos que, para garantir o bom funcionamento do nosso script no longo prazo, necessitamos de uma boa gestão de dependências. Mas suponhamos que temos dois projetos diferentes, um necessita da versão do Pandas 1.1.5 e o outro necessita da versão 0.25.0. Seria inviável ter que reinstalar a biblioteca toda vez que for mudar de um projeto para outro.

Para facilitar esse processo, o Python permite a criação de ambientes virtuais.

Esses ambientes são isolados, um não se comunica com o outro. É como se tivéssemos mais de uma instalação de Python no nosso computador, cada uma possuindo as suas próprias bibliotecas nas versões exatas que o projeto necessita.

exemplo de ambientes virtuais

E isso resolve nosso problema e conseguimos fazer a gestão de dependências facilmente!

Mas agora, vamos lá, como fazemos isso?

Criando ambientes virtuais em Windows

Partimos do pressuposto de que você já tem Python instalado na sua máquina.
Você pode criar ambientes virtuais com diferentes versões do Python. Para verificar as versões disponíveis na sua máquina, abra a linha de comando (também conhecida como command prompt ou CMD). Para isso, digite cmd na procura e clique em Linha de comandos.

abrindo linha de comando no windows

Para você descobrir as versões de Python disponíveis no seu PC, digite o comando where python na linha de comando.

descobrindo versões de python pela linha de comando

As instalações válidas de Python ficam, em geral, na pasta Programs, do diretório local. Portanto, nós só temos uma instalação válida de Python nesta máquina, na versão 3.11.

Agora, vou criar uma pasta projetoVenv dentro da pasta Documents para começarmos nossos trabalhos. Para me mover para a pasta Documents, utilizo o comando chdir, depois crio a pasta projetoVenv utilizando o comando mkdir e entro nesse diretório recém-criado utilizando o comando chdir novamente.

criando pasta no cmd windows

Depois, podemos finalmente criar nosso ambiente virtual utilizando o comando venv, do Python. Esse comando funciona da seguinte forma:

  1. O caminho para a versão de Python que você quer no seu ambiente virtual. No nosso caso: C:\Users\aavso\AppData\Local\Programs\Python\Python311\python.exe
  2. A flag -m.
  3. O módulo venv da biblioteca padrão de Python, usado para a criação de ambientes virtuais.
  4. E por fim, o nome da pasta na qual o ambiente virtual ficará armazenado (projetoVenv).

O comando fica assim portanto:

C:\Users\aavso\AppData\Local\Programs\Python\Python311\python.exe -m venv projetoVenv

Você pode notar que surgiu uma nova pasta chamada projetoVenv. Para facilitar, sugiro a utilização do comando start . para abrir o explorador de arquivos e facilitar a visualização.

comando start no cmd do windows

Pronto, seu ambiente virtual está criado. Dentro dessa pasta projetoVenv, você tem uma cópia do Python que está instalado na sua máquina e, todas as vezes em que você utilizá-lo, você estará utilizando um Python diferente do da máquina.

Utilizando ambientes virtuais em Windows

Para utilizar o ambiente virtual, você precisa ativá-lo antes. Para fazer isso pela linha de comando, rode o arquivo activate.bat que fica na pasta Scripts, criada dentro da pasta do seu ambiente virtual:

venvProjeto\Scripts\activate.bat
ativando ambiente virtual no windows

Você notará que o nome do seu ambiente virtual aparecerá entre parênteses no início da linha agora, e isso significa que seu ambiente está ativo.Agora podemos dar um comando where python e verificar se realmente esse novo python está sendo utilizado:

comndo where com ambiente virtual ativado python

Note que surgiu uma nova primeira linha, a qual aponta para o nosso Python do ambiente virtual. Exatamente como esperávamos.

Agora, sempre que eu rodar um script com python (usando o comando python meu_script.py), nós estaremos utilizando o Python do ambiente virtual:

desativar ambiente virtual python windows

Para desativar o ambiente virtual, o processo é similar à ativação, mas no lugar utilizamos o arquivo deactivate.bat:

venvProjeto\Scripts\deactivate.bat

E para provar que os dois interpretadores de Python são isolados, vamos utilizar o comando pip list e mostrar que as bibliotecas instaladas no python do ambiente virtual são diferentes das bibliotecas do python do sistema:

comando list em um ambiente virtual python

Na imagem acima, rodamos primeiro no Python do sistema (fora do ambiente virtual) e obtivemos diversas bibliotecas instaladas. Em seguida, ativamos o ambiente virtual e rodamos o mesmo comando, e podemos ver que nesse ambiente só temos as bibliotecas padrão pip e setuptools instaladas.

Utilizando ambientes virtuais no VSCode

A criação de ambientes virtuais no VS Code é bem simples. Para testar esta funcionalidade, criamos o script abaixo, que reproduz o teste do pip list que realizamos anteriormente.

import pip
print(pip.main(['list']))
Testar

O VS Code reconhece automaticamente seu interpretador de Python quando estamos num script de Python. Podemos verificar isso no canto inferior direito do programa:

Verfificando interpretador utilizado no vs code

Podemos ver que ele reconheceu o nosso Python 3.11. Caso ele não tenha reconhecido, vale a pena conferir nosso tutorial sobre como configurar o interpretador de Python no VS Code.
Para criar um novo ambiente virtual, utilize o atalho Ctrl + Shift + P e digite Python: Create. A opção Python: Create Environment deve aparecer. Caso seu VS Code esteja em português, procure por Python: Criar Ambiente:

Criando ambiente virtual no vs code

Depois, selecione venv como método de criação do ambiente:

Selecionando venv para criação de ambiente virtual vs code

Por último, selecione a versão do interpretador do ambiente que estamos criando. Como nesta máquina só temos o Python 3.11 instalado, selecionaremos ele:

Selecionando interpretador para criação de ambiente virtual vs code

Pronto, o VS Code já cria o ambiente para você e, automaticamente, passa a utilizá-lo. Podemos verificar isso pelo canto inferior direito, que agora está mostrando a pasta .venv como caminho do interpretador:

Verificando interpretador utilizado vs code

Todos os scripts que você rodar, estando nessa pasta já utilizarão o ambiente virtual. Caso você queira utilizar o interpretador global e não o ambiente virtual, clique no canto inferior direito sobre o .venv e selecione o interpretador:

selecionado interpretador vs code

Agora, você pode testar o script test_venv.py rodando-o com o ambiente virtual ativado e desativado e vendo a diferença no output do script.

O que aprendemos com tudo isso?

Acredito que a maior característica de um bom programador é a sua capacidade de manter o código organizado, e isso começa sempre com a organização do seu ambiente.

Então, agora que você sabe como funciona, comece a utilizar os ambientes virtuais. No início, pode parecer não fazer tanto sentido, mas, quando você for utilizar aquele código antigo que está há dois anos parado, tenho certeza de que você verá que valeu a pena!

Futuramente, pretendo aprofundar os temas de gestão de dependência com as ferramentas que estão surgindo. Fique ligado aqui no blog!

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse:
Conteúdos do tutorial