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