Ambientes virtuais em Python: O que são e como criar com virtualenv

Python

Chegou a hora de aprender como funciona e para que serve Python virtualenv. A ferramenta que possibilita a criação de ambientes virtuais isolados para programar em Python. E te da a liberdade de utilizar diferentes bibliotecas ou até mesmo diferentes versões do Python, sem que haja conflitos entre elas.

Nesse artigo eu vou mostrar como instalar e criar e utilizar seus ambientes virtuais, e você vai descobrir porque você já deveria estar usando ambientes virtuais.

Chega de erros de conflito…

Por que a Necessidade de Ambientes Virtuais em Python?

Python, como a maioria das outras linguagens de programação modernas, tem sua própria forma única de baixar, armazenar e resolver pacotes (ou módulos).

Embora isso tenha suas vantagens, também traz junto alguns ‘problemas’, especialmente como e onde esses pacotes são armazenados.

Considere o seguinte cenário onde você tem dois projetos: Projeto A e Projeto B, ambos com dependência do mesmo pacote, e que conecta o Python a um banco de dados, por exemplo.

Se quiser saber mais como conectar ao banco de dados MySQL usando Python, voce pode ir nesse post.

Para o Projeto A você precisa da versão v1.0.0 desse pacote, mas para a o Projeto B você precisa da versão v2.0.0.

Em Python, você não consegue diferenciar as versões no diretório padrão site-packages. Então tanto a v1.0.0 quanto a v2.0.0 do pacote vão estar no mesmo diretório com o mesmo nome.

Como os pacotes são armazenados apenas de acordo com seu nome, e não há diferenciação entre as versões. Assim, ambos os projetos, Projeto A e B, seriam obrigados a utilizar a mesma versão, o que é inaceitável em muitos casos.

É aqui que entram em jogo os ambientes virtuais e as ferramentas virtualenv/venv

O que são ambientes virtuais em Python

Um ambiente virtual é uma árvore de diretórios que contém arquivos executáveis Python e outros arquivos que indicam que se trata de um ambiente virtual.

É um ambiente tal que o interpretador Python, bibliotecas e scripts instalados nele são isolados daqueles instalados em outros ambientes virtuais, e também das bibliotecas e pacotes instaladas por padrão pelo seu sistema operacional.

O principal objetivo dos ambientes virtuais é criar um ambiente isolado para os projetos Python. Isto significa que cada projeto pode ter suas próprias dependências, independente das dependências que cada outro projeto tenha.

O que é o Python virtualenv

Python virtualenv é uma ferramenta utilizada para criar um ambiente virtual isolado em Python. Este ambiente tem seus próprios diretórios de instalação que não compartilha bibliotecas com outros ambientes virtualenv (e opcionalmente também não acessa as bibliotecas instaladas globalmente).

Python virtualenv é a forma mais fácil (e recomendada) de configurar um ambiente Python personalizado.

O Python 3 já vem, por padrão com o pacote venv, que inclui essa funcionalidade, (Python2 não). Mas o Python virtualenv é uma biblioteca que oferece mais funcionalidades do que venv.

Veja o link abaixo para uma lista de funcionalidades que o venv não oferece em comparação com o virtualenv.

Instalando o Python virtualenv

Para a instalação do virtualenv vamos precisar do pip.

Caso você ainda não tenha o gerenciador de pacotes pip, instale-o clicando aqui e executando o script baixado com python get-pip.py.

Agora com o pip, precisamos executar apenas um comando para instalar o virtualenv:

No macOS ou Linux:

python3 -m pip install --user virtualenv

Windows:

py -m pip install --user virtualenv

Criando um ambiente virtual com virtualenv

O Python virtualenv é bem, minimalista, tem apenas um comando.

virtualenv

Você pode criar um novo ambiente virtual indo diretamente na pasta do seu projeto e digitando o comando:

virtualenv <DIR>

Fazendo isso você vai criar um ambiente virtual sobre a versão do Python no qual o virtualenv foi instalado.

Se você quiser criar um ambiente virtual com uma versão diferente do Python, basta usar a opção --python (ou short -p) ao criar sua instância virtualenv e especificar a versão do Python que você quer usar, por exemplo:

virtualenv --python=/usr/bin/python3.8 <DIR>

Você precisa especificar o caminho da pasta da versão que você quer usar. Você pode descobrir a rota usando o comando:

which python
//ou
which python3

Como ativar seu Ambiente Virtual

Ao trabalhar neste projeto, você deve ativar o ambiente virtual para ter certeza de estar trabalhando com as versões certas de suas ferramentas e pacotes. Você pode fazer isso rodando o comando:

source DIR/bin/activate

O nome do ambiente virtual atual aparece à esquerda do prompt.
Por exemplo:

(DIR) [server]$ 

Como Desativar seu Ambiente Virtual

Para desativar um ambiente virtual, se caso você quiser utilizar outro ambiente virtual ou trabalhar em outro projeto. Basta executar esse comando:

(DIR) [server]$  deactivate

Isto te coloca de volta nas configurações padrão do seu usuário Shell.

Conclusão

Usar Python virtualenv e criar ambientes virtuais ajuda a eliminar, ou pelos reduzir os problemas de conflitos entre as versões de pacotes e bibliotecas.

Se você acabou de iniciar um novo projeto, aproveite para isolar ele dos seus antigos projetos ou de novos, o quanto antes melhor. Você só tem a ganhar fazendo isso.

Espero que tenham gostado! E se curtiu este post, e acredita que vai dar um up no seus projetos Python, não se esqueça de se inscrever, clicando aqui, ou no formulário logo abaixo, para receber todas as nossas novidades!

Tem muito conteúdo exclusivo lá também!

Até a próxima!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

2 Comments

Karlla

Muito bom! Parabéns. Tenho uma dúvida: como eu deleto um ambiente virtual no Windows?

    Daniel Nunes

    Não há nenhum comando para apagar seu ambiente virtual. Basta desativar e apagar a pasta onde você criou o seu ambiente virtual.