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 python3 -c '<comando>'
para invocar o ponto de entrada principal da aplicação diretamente.
Confira a documentação de pkg_resources para mais detalhes.