Configuração avançada do Pip e Virtualenv

https://farm4.staticflickr.com/3934/34018732105_f0e6758859_k_d.jpg

Requisitando um ambiente virtual ativo para o “pip”

Agora deve estar claro que usar ambientes virtuais é um ótimo meio para deixar seu ambiente virtual limpo e manter necessidades de diferentes projetos separadas.

Quando você começa a trabalhar em muitos projetos diferentes, pode ser difícil lembrar-se de ativar o ambiente virtual certo quando você volta para um projeto específico. Como resultado disso, é muito fácil instalar pacotes globalmente enquanto acha que está instalando apenas o pacote do ambiente virtual do projeto. Com o tempo isso pode ocasionar uma bagunça na sua lista de pacotes globais.

Para ter certeza que você está instalando pacotes em seu ambiente virtual ao usar “pip install”, adicione a seguinte linha ao seu ~/.bashrc file:

export PIP_REQUIRE_VIRTUALENV=true

Após salvar essas mudanças e sourcing o arquivo ~/.bashrc com source ~/.bashrc, o pip não vai mais deixar você instalar pacotes se você não estiver em um ambiente virtual. Se você tentar usar pip install fora de um ambiente virtual, o pip vai lhe lembrar que um ambiente virtual ativado é necessário para a instalação de pacotes.

$ pip install requests
Could not find an activated virtualenv (required).

Você também pode fazer essa modificação ao editar o seus arquivos pip.conf ou pip.ini. pip.conf é usado pelos sistemas operacionais Unix e MAC OS X e pode ser achado em:

$HOME/.pip/pip.conf

Do mesmo modo, o arquivo pip.ini é utilizado pelos sistemas operacionais Windows e pode ser encontrado em:

%HOME%\pip\pip.ini

Se você não possuir um arquivo pip.conf ou pip.ini nesses locais, você pode criar um novo arquivo com os nomes corretos do seu sistema operacional.

Caso você já tenha um arquivo de configuração, basta adicionar as seguintes linhas abaixo das configurações [globais] para requerir um ambiente virtual ativo.

require-virtualenv = true

Se você não tinha um arquivo de configuração, você terá que criar um novo e adicionar as seguintes linhas ao mesmo:

[global]
require-virtualenv = true

Você obviamente precisará instalar alguns pacotes globalmente (geralmente os que você usa em pacotes diferentes com frequência), e isso pode ser feito ao adicionar a seguinte linha ao seu arquivo ~/.bashrc.

gpip() {
    PIP_REQUIRE_VIRTUALENV="" pip "$@"
}

Depois de salvar as alterações e o seu arquivo arquivo fonte ~/.bashrc agora você pode instalar pacotes globalmente executando gpip install. Você pode alterar o nome da função para qualquer coisa que você gosta, basta ter em mente que terás que usar esse nome ao tentar instalar pacotes globalmente com o pip.

Pacotes de cache para uso futuro

Cada desenvolvedor tem bibliotecas preferenciais e quando você está trabalhando em um monte de projetos diferentes, és obrigado a ter alguma sobreposição entre as bibliotecas que você usa. Por exemplo, você pode estar usando a biblioteca requests em vários projetos diferentes.

It is surely unnecessary to re-download the same packages/libraries each time you start working on a new project (and in a new virtual environment as a result). Fortunately, starting with version 6.0, pip provides an on-by-default caching mechanism that doesn’t need any configuration.

When using older versions, you can configure pip in such a way that it tries to reuse already installed packages, too.

Em sistemas UNIX, você pode adicionar a seguinte linha ao seu arquivo .bashrc ou .bash_profile.

export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache

Você pode definir o caminho para qualquer lugar que gostes (contanto que você tenha acesso de gravação). Depois de adicionar esta linha, os seus source .bashrc (ou .bash_profile) estarão todos definido.

Outra maneira de fazer a mesma configuração é através dos arquivos pip.conf ou pip.ini, dependendo do seu sistema. Se estivermos no Windows, podemos adicionar a seguinte linha ao nosso arquivo pip.ini em [global] settings:

download-cache = %HOME%\pip\cache

Da mesma forma, em sistemas UNIX, simplesmente devemos adicionar a seguinte linha ao nosso arquivo pip.conf em [global] settings:

download-cache = $HOME/.pip/cache

Mesmo que você possa usar qualquer caminho que você gosta de armazenar o seu cache, recomenda-se que você crie uma nova pasta dentro de onde o arquivo pip.conf ou o pip.ini reside. Se você não confiares em si próprio mesmo com todo esse caminho voodoo, basta usar os valores fornecidos aqui e estarás bem.