Further Configuration of pip and Virtualenv

../_images/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 recarregar o seu arquivo ~/.bashrc você pode instalar pacotes globalmente executando gpip install. Você pode alterar o nome da função para qualquer coisa que você goste, mas tenha em mente que precisará usar esse nome ao tentar instalar pacotes globalmente com o pip.

Pacotes de cache para uso futuro

Cada desenvolvedor tem bibliotecas preferidas e quando você está trabalhando em um monte de projetos diferentes, é 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.

On Unix systems, you can add the following line to your .bashrc or .bash_profile file.

export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache

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

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 na seção [global]:

download-cache = %HOME%\pip\cache

Similarly, on Unix systems you should simply add the following line to your pip.conf file under [global] settings:

download-cache = $HOME/.pip/cache

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