pip: Por que às vezes instalado como ovo, às vezes instalado como arquivos

Onde você pode forçar o pip a instalar como "plano" e não como "ovo".

Para mim, parece aleatório. Às vezes, é instalado como ovo, às vezes tão plano.

pip help install mostra apenas uma opção--egg o que força uma instalação de ovo. Mas não consegui encontrar um--flat opção.

Os pacotes são de um próprio pypiserver e são carregados assim:

python setup.py sdist upload -r internal

Saída do pip durante a instalação:

Best match: foo-client 2015.2
Downloading https://installserver:40443/pypi/packages/foo_client-2015.2.tar.gz
Processing foo_client-2015.2.tar.gz
Writing /home/bar_eins_daad/tmp/easy_install-z20B7b/foo_client-2015.2/setup.cfg
Running foo_client-2015.2/setup.py -q bdist_egg --dist-dir /home/bar_eins_daad/tmp/easy_install-z20B7b/foo_client-2015.2/egg-dist-tmp-GO1snX

Não sei porquebdist_egg se acostuma aqui. Isso força a criação de uma instalação de ovo?

osetup.py usasetuptools nãodistutils.

O pacote no nosso pypiserver é assim:

tar -tzf packages/foo_client-2015.3.tar.gz

conteúdo:

foo_client-2015.2/
foo_client-2015.2/foo_client.egg-info/
foo_client-2015.2/foo_client.egg-info/SOURCES.txt
foo_client-2015.2/foo_client.egg-info/top_level.txt
foo_client-2015.2/foo_client.egg-info/dependency_links.txt
foo_client-2015.2/foo_client.egg-info/PKG-INFO
foo_client-2015.2/setup.cfg
foo_client-2015.2/PKG-INFO
foo_client-2015.2/foo_client/
foo_client-2015.2/foo_client/models.py
...

fundo

Às vezes, o pip parece instalar pacotes várias vezes se ovos compactados estiverem instalados.

Atualizar

Eu descobri sob quais condições o pacote é instalado como ovo: se ele for instalado viapython setup.py develop (é uma dependência install_requires).

Se eu usarpip install foo_client ele é instalado de forma plana (do jeito que eu quero).

Update2

A parte mais feia: se o ovo for instalado, a versão antiga instalada não será removida.

Versão: pip 1.5.6

questionAnswers(5)

yourAnswerToTheQuestion