Criando Ambientes Virtuais com Venv
Tags: braziliandevs, python, beginners, tutorial
Published: 2023-11-09 14:18:23

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:

```bash
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”

```bash
python3 -m venv teste
```

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/34a6gzbduuczpsak8y1g.png)

Para ativar o ambiente, basta usar o comando:

```bash
source teste/bin/activate
```

![ativando o ambiente virtual "teste" no terminal linux](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vx4oquh28129a66by0bt.png)

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ta5j12cikvx3rpb47nck.png)

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:

```bash
pip install Flask
```

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

![lista de pacotes pip depois de instalar Flask](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hn2ddi13xevyig9vt41s.png)

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:

```bash
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:

```bash
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!