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