Um IPython para múltiplos virtualenvs

8

O IPython e o virtualenv são ferramentas imprescindíveis que utilizo literalmente em todos os projetos.

O uso recorrente destes dois pacotes pode gerar o incômodo de ter que instalar o IPython em cada virtualenv, mas existem alternativas para contornar este inconveniente.

A melhor delas é simplesmente instalar o IPython 0.13 no escopo do seu sistema. Esta versão lançada em junho de 2012 contém o patch para detectar automaticamente o virtualenv ativado.

Esta solução funciona para 90% dos casos. Os 10% restantes incluem cenários onde a versão do Python do seu sistema é diferente do seu virtualenv, por exemplo. Para estes casos especiais, basta instalar o IPython no próprio virtualenv.

Dentre as outras alternativas que observei, duas me chamaram a atenção: (1) incluir o IPython como dependência do projeto no requirements.txt ou (2) criar um requirements_dev.txt para não forçar a instalação do IPython no deploy do projeto.

Ambas devem ser evitadas. A primeira ignora que o IPython é na verdade uma preferência do desenvolvedor e não uma dependência do projeto. Há quem prefira o BPython como meu amigo Rodrigo Cacilhas. A segunda introduz a complexidade de duas listas de dependências usadas em momentos distintos o que é uma receita para desatualização e confusão.

[]’s, HB!

você pode gostar também
8 comentários
  1. Gleison Rodrigues Diz

    Eu gosto de deixar as minhas preferencias pessoais em no arquivo “postmkvirtualenv” do virtualenvwrapper

  2. Gleison Rodrigues Diz

    Eu gosto de deixar as minhas preferencias pessoais em no arquivo “postmkvirtualenv” do virtualenvwrapper

  3. Flávio Amieiro Diz

    Só pra lembrar: dá pra fazer o equivalente a um include do requirements.txt no requirements_dev.txt, assim você não precisa manter duas listas separadas (http://www.pip-installer.org/en/latest/requirements.html#recursive-requirements).

    Mesmo assim, concordo que o ipython deve ser instalado pelo desenvolvedor. Realmente não parece fazer muito sentido tratar ele como dependência do projeto.

    1. Henrique Bastos Diz

      Legal essa feature de requirements recursivos. Não conhecia. Parece útil para projetos com muitos componentes complexos “espalhados”.

  4. Flávio Amieiro Diz

    Só pra lembrar: dá pra fazer o equivalente a um include do requirements.txt no requirements_dev.txt, assim você não precisa manter duas listas separadas (http://www.pip-installer.org/en/latest/requirements.html#recursive-requirements).

    Mesmo assim, concordo que o ipython deve ser instalado pelo desenvolvedor. Realmente não parece fazer muito sentido tratar ele como dependência do projeto.

    1. Henrique Bastos Diz

      Legal essa feature de requirements recursivos. Não conhecia. Parece útil para projetos com muitos componentes complexos “espalhados”.

  5. Flávio Amieiro Diz

    Só pra lembrar: dá pra fazer o equivalente a um include do requirements.txt no requirements_dev.txt, assim você não precisa manter duas listas separadas (http://www.pip-installer.org/en/latest/requirements.html#recursive-requirements).

    Mesmo assim, concordo que o ipython deve ser instalado pelo desenvolvedor. Realmente não parece fazer muito sentido tratar ele como dependência do projeto.

    1. Henrique Bastos Diz

      Legal essa feature de requirements recursivos. Não conhecia. Parece útil para projetos com muitos componentes complexos “espalhados”.

Deixe uma resposta

Seu endereço de email não será publicado.