ambiente virtual

Fala pessoal blz? Nesse post, vou mostrar para vocês o funcionamento do incrível virtualenv, uma ferramenta simples e poderosa que permite criar ambientes isolados de desenvolvimento na linguagem python, ou seja, torna possível a utilização de diversas bibliotecas em um mesmo ambiente sem que haja conflitos entre elas e também o mesmo ambiente pode ser reutilizado por outras pessoas permitindo que elas usem as mesmas configurações.

Como esse virtualenv funciona?

O funcionamento do virtualenv é algo bastante simples. Ele basicamente constrói uma cópia de todos os diretórios necessários para que um programa python seja executado, isto inclui:

  • As bibliotecas comuns do python (standard library);
  • O gerenciador de pacotes pip;
  • O próprio binário do python seja ele da versão 2.x ou 3.x;
  • Dependências que estiverem no diretório do pacote desejado instalado (e.g., numpy ou qualquer outra);
  • Seu código fonte descrevendo sua aplicação.

Desse modo ao instalar uma nova dependência (i.e., biblioteca) dentro do ambiente criado pelo virtualenv, essa dependência será colocada no diretório de pacotes local relativo à esse ambiente, e não mais globalmente.

Assim, só esse ambiente visualiza essa dependência!

Passo a passo para utilização de um ambiente virtual em python

Para instalar o virtualenv você precisa ter o pip instalado na sua máquina. O pip nada mais é do que o gerenciador de pacotes do python assim como no java tem o maven, no nodejs tem o npm e yarn e no php tem o composer.

Para instalar o pip para o python 2 no sistema linux distro ubuntu digite no terminal:

sudo apt install python-pip

Para instalar o pip para o python 3 no sistema linux distro ubuntu digite no terminal:

sudo apt install python3-pip

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

Para o python 2:
sudo pip install virtualenv

Para o python 3:
sudo pip3 install virtualenv

Agora você já pode começar a criar seus ambientes virtuais em python!

Inicializando um ambiente virtual

No terminal acesse um diretório no qual você deseja criar seu ambiente e então digite o seguinte comando:

Desse modo se você não especificar o python ele irá criará um ambiente virtual para o python 2:
virtualenv nome_do_seu_ambiente_virtual

Por exemplo:
virtualenv ambiente_virtual

Outra alternativa para especificar a versão do python caso a anterior não seja do seu agrado:
virtualenv --python=/usr/bin/python3 nome_do_seu_ambiente_virtual

Esse comando cria um novo ambiente de desenvolvimento totalmente isolado e nesse caso, vamos chamar nossa pasta de ambiente_virtual.

Nesse ambiente/pasta são criados alguns diretórios importantes como:

  • ambiente_virtual/lib e ambiente_virtual/include: contêm as bibliotecas de suporte ao ambiente virtual. Os pacotes baixados via pip por exemplo serão instalados em ambiente_virtual/lib/pythonX.X/pacotes-locais/ (não mais globalmente).

  • ambiente_virtual/bin: residem os binários necessários para executar o próprio python, entre outros executáveis (e.g., como o pip ou setuptools). Dessa forma, os comandos python script.py e ambiente_virtual/bin/python script.py produzem exatamente o mesmo resultado.

Ativando um ambiente virtual

Toda vez que você desejar acessar o ambiente virtual criado é necessário que você o ative. Para isso basta digitar o seguinte comando:

Linux/MacOs:
source ambiente_virtual/bin/activate

Windows:
ambiente_virtual\Scripts\activate

Com seu ambiente virtual ativado você pode instalar as bibliotecas necessárias para o funcionamento do seu projeto.

Se você deseja instalar uma biblioteca que precisa utilizar em seu projeto faça da seguinte maneira:

pip install nome_do_pacote

Portanto, o nome do pacote deve ser exatamente como ele se encontra no site do pip. Ele baixará todos os arquivos necessários e instalará esse pacote.

Então, se você quiser remover um pacote do python instalado via pip, você pode usar a opção que remove bibliotecas em pip.

pip uninstall nome_do_pacote

Viu como é simples!

Desativando um ambiente virtual

Para desativar um ambiente virtual digite no terminal onde o ambiente virtual está ativado/aberto:

deactivate

Gerar arquivo com as bibliotecas utilizadas no projeto com suas respectivas versões

Com o ambiente virtual ativado e na raiz do projeto digite no terminal o comando:

pip freeze > requirements.txt

requirements.txt é o nome do seu arquivo.txt que contêm as dependências do seu projeto python.

A partir de um arquivo como o especificado no tópico acima instalar todas dependências de um projeto python a partir de um arquivo com a extensão .txt

Para instalar todas as dependências, esteja com o seu ambiente virtual ativado e no terminal digite o comando:

pip install -r /caminho-do-arquivo/requirements.txt