Instalações de várias versões

Status da página

Obsoleto

easy_install permite a instalação simultânea de diferentes versões do mesmo projeto em um único ambiente compartilhado por vários programas que devem exigir (require) a versão apropriada do projeto em tempo de execução (usando pkg_resources).

Para muitos casos de uso, ambientes virtuais atendem a essa necessidade sem a complicação da diretiva require. No entanto, a vantagem de instalações paralelas dentro do mesmo ambiente é que funciona para um ambiente compartilhado por várias aplicações, como o sistema Python em uma distribuição Linux.

A principal limitação da instalação paralela baseada em pkg_resources é que assim que você importa pkg_resources ele bloqueia a versão padrão de tudo que já está disponível em sys.path. Isso pode causar problemas, já que setuptools scripts de linha de comando criados usam pkg_resources para encontrar o ponto de entrada a ser executado. Isso significa que, por exemplo, você não pode usar testes de require invocados através do nose ou uma aplicação WSGI invocada através do gunicorn se sua aplicação precisa de uma versão não padrão de qualquer coisa que está disponível no sys.path padrão – o script wrapper para a aplicação principal travará na versão que está disponível por padrão, então a chamada subsequente de require em seu próprio código falhará com um conflito de versão espúrio.

Isso pode ser contornado definindo todas as dependências em __main__.__ require__ antes de importar pkg_resources pela primeira vez, mas essa abordagem significa que as invocações de linha de comando padrão das ferramentas afetadas não podem ser usadas – é necessário escrever um script wrapper personalizado ou usar python -c '<comando>' para invocar o ponto de entrada principal da aplicação diretamente.

Confira a documentação de pkg_resources para mais detalhes.