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.

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). Para isso, digite cmd na procura e clique em Linha de comandos.

ambientes virtuais

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

ambientes virtuais

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.

ambientes virtuais

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 padrão de Python para a criação de ambientes virtuais venv.
  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.

ambientes virtuais

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 um arquivo .bat que fica na pasta Scripts, criado dentro da pasta do seu ambiente virtual.

venvProjeto\Scripts\activate.bat

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.

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 (python meu_script.py), nós estaremos utilizando o python do ambiente virtual.

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 pythons são isolados, vou 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.

Rodei primeiro no python do sistema, e temos diversas bibliotecas instaladas. Depois ativei o ambiente e rodei 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 VSCode é bem simples. Criei um script com o seguinte código para reproduzir o teste do pip list que realizamos no passo anterior e o nomeei test_venv.py.

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

O VSCode reconhece automaticamente seu interpretador de Python quando estamos num script .py. Podemos verificar isso no canto inferior direito.

Podemos ver que ele reconheceu o nosso Python 3.11. Caso ele não tenha reconhecido, vale a pena conferir o guia de configuração do VSCode para Python que preparamos.
Para criar um novo ambiente virtual, utilize o atalho ctrl + shift + p e digite Python: Create, e a opção Python: Create Environment deve aparecer (caso seu VSCode esteja em português, procure por Python: Criar Ambiente).

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

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.

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

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.

ambientes virtuais

Agora, você pode testar o script test_venv.py rodando-o com o ambiente virtual ativado e desativado e vendo se houve uma diferença na 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