DEV Community

Lucas Nobre Barbosa
Lucas Nobre Barbosa

Posted on

Criando Ambientes Virtuais com Venv

Desenvolvedores de Software precisam constantemente aprender novas tecnologias e fazer novos projetos. Quanto mais se faz isso e mais tempo passa, maiores são as chances de um conflito de bibliotecas ou erros de uma nova versão de código acontecer.

No ecossistema Python isso é resolvido com a abordagem dos ambientes virtuais. No primeiro artigo que escrevi sobre o assunto em https://dev.to/nobrelucas/administrando-ambientes-virtuais-com-conda-54l9 falei mais profundamente sobre esse assunto e introduzi o administrador de ambientes virtuais Conda.

Nesse artigo, busco introduzir um criador de ambientes virtuais muito mais simples que serve para a maioria dos projetos de pequeno e médio porte, o Venv.

Note que diferente do Conda, ele não oferece nenhum suporte para a administração dos ambientes virtuais, somente para a sua criação.

Instalação

Primeira vantagem do Venv: ele já vem instalado com o Python, então nada mais é preciso ser feito para usar ele 🙂.

Criando ambiente virtual

Para criar um ambiente virtual com Venv basta usar um comando muito simples:

python3 -m venv {nome_do_env}
Enter fullscreen mode Exit fullscreen mode

Vamos explorar esse comando por partes:

→ python3 invoca o interpretador Python que será responsável por executar o código do módulo venv

→ -m indica que o código que vai ser executado pelo interpretador Python será um módulo

→ venv é o módulo venv, responsável pela criação do ambiente virtual

→ {nome_do_env}, como auto explicativo, nomeia o diretório onde o ambiente virtual vai ser criado

E assim temos nosso ambiente virtual. Vamos fazer algo prático

Na prática

Vamos criar um ambiente chamado “teste” em um diretório de estudo “criando-venv”

python3 -m venv teste
Enter fullscreen mode Exit fullscreen mode

Se você estiver em um ambiente Linux, digite ls no terminal para ver o diretório com o ambiente criado.

criando ambiente virtual "teste" no terminal linux

Para ativar o ambiente, basta usar o comando:

source teste/bin/activate
Enter fullscreen mode Exit fullscreen mode

ativando o ambiente virtual "teste" no terminal linux

Para sair do ambiente basta escrever o comando deactivate no terminal ou fechar o terminal:

Instalando bibliotecas

Note que as bibliotecas instaladas são somente as básicas para começar a instalar outras, ou seja o seu ambiente está limpo e livre, pronto para começar a ser configurado com novas bibliotecas.

lista de pacotes pip antes de instalar os novos

Então agora é só instalar as bibliotecas que você precisa para o seu projeto.

Digamos que vamos fazer uma API com Flask e instalamos ele com pip:

pip install Flask
Enter fullscreen mode Exit fullscreen mode

Após a instalação, nosso ambiente terá as seguintes bibliotecas:

lista de pacotes pip depois de instalar Flask

Agora é só programar

Persistindo o ambiente

Para que você possa trabalhar colaborativamente com outros desenvolvedores. Eles vão precisar criar um ambiente virtual e instalar as exatas mesmas bibliotecas que você, na exata mesma versão.

Ao invés de você mandar um print como o que eu mostrei anteriormente para instalar manualmente cada biblioteca, uma de cada vez, você pode criar um arquivo de requerimentos, o requirements.txt. Para isso, basta usar o comando:

pip freeze > requirements.txt
Enter fullscreen mode Exit fullscreen mode

Isso vai criar um arquivo txt com todas as bibliotecas que você está usando no projeto. Lembre de sempre atualizar seu requirements.txt com as novas bibliotecas que você instalar no caminho.

Instalando as bibliotecas do requirements.txt

Caso você seja o outro desenvolvedor que recebeu o requirements.txt. Para instalar essas bibliotecas basta você primeiro criar um ambiente virtual na sua máquina, ativar ele e depois usar o comando:

pip install -r requirements.txt
Enter fullscreen mode Exit fullscreen mode

E você já está pronto para trabalhar também

Conclusão

Com esse artigo você já é capaz de usar o Venv para criar ambientes virtuais para projetos de pequeno e médio porte.

Se você quiser saber mais sobre ambientes virtuais, meu primeiro artigo sobre o assunto tem mais detalhes sobre eles.

Dúvidas, sugestões, correções e críticas são muito bem vindas na sessão de comentários abaixo. Espero poder encontrar você nos meus próximos artigos 😀. Até a próxima!

Top comments (3)

Collapse
 
lazarovbonifacio profile image
Lázaro Vinícius de Oliveira Bonifácio

Realmente, o venv é muito útil. Uso tanto quanto posso.

Collapse
 
nobrelucas profile image
Lucas Nobre Barbosa

É muito útil mesmo. Estou muito interessado em usar o Poetry e com certeza vou escrever um artigo sobre ele quando eu aprender 😊

Collapse
 
lazarovbonifacio profile image
Lázaro Vinícius de Oliveira Bonifácio

Boa! O pip é muito simplista.