pip: Warum manchmal als Ei installiert, manchmal als Dateien installiert

Wo können Sie Pip zwingen, als "flach" und nicht als "Ei" zu installieren.

Für mich scheint es zufällig. Manchmal wird es als Ei installiert, manchmal als flach.

pip help install zeigt nur eine Option--egg was eine Eiinstallation erzwingt. Aber ich konnte kein @ find--flat Möglichkeit

Die Pakete stammen von einem eigenen Pypiserver und wurden wie folgt hochgeladen:

python setup.py sdist upload -r internal

Ausgabe von pip während der Installation:

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

Ich weiß nicht warumbdist_egg wird hier verwendet. Erzwingt es das Erstellen einer Eiinstallation?

Dassetup.py verwendetsetuptools notdistutils.

Das Paket auf unserem Pypiserver sieht so aus:

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

Inhalt

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
...

Hintergrun

pip scheint Pakete manchmal mehrmals zu installieren, wenn gezippte Eier installiert sind.

Aktualisiere

Ich habe festgestellt, unter welcher Bedingung das Paket als Ei installiert wird: wenn es über @ installiert wipython setup.py develop (es ist eine install_requires-Abhängigkeit).

Wenn ich benutzepip install foo_client es wird flach installiert (so wie ich es will).

Update2

Der sehr hässliche Teil: Wenn das Ei installiert wird, wird die alte Version, die flach installiert wurde, nicht entfernt.

Version: pip 1.5.6

Antworten auf die Frage(10)

Ihre Antwort auf die Frage