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}
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
Se você estiver em um ambiente Linux, digite ls
no terminal para ver o diretório com o ambiente criado.
Para ativar o ambiente, basta usar o comando:
source teste/bin/activate
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.
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
Após a instalação, nosso ambiente terá as seguintes bibliotecas:
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
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
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!