Wir möchten pip with github verwenden, um private Pakete auf unseren Produktionsservern zu installieren. Diese Frage betrifft, was im Github-Repo enthalten sein muss, damit die Installation erfolgreich ist.
Angenommen, die folgende Befehlszeile (die sich einwandfrei authentifiziert und versucht zu installieren):
pip install git+ssh://git@github.com/BlahCo/search/tree/prod_release_branch/ProductName
Was muss sich im Produktnamen befinden? Ist es der Inhalt dessen, was normalerweise in der TAR-Datei enthalten ist, nachdem setup.py mit der Option sdist ausgeführt wurde, oder ist es die eigentliche tar.gz-Datei oder etwas anderes?
Ich frage hier, weil ich verschiedene Variationen ausprobiert habe und es nicht zum Laufen bringen kann. Jede Hilfe geschätzt.
-e
Option (bearbeitbarer Modus) nicht an pip übergeben?pip install git+https://github.com/pypa/pip.git
Quelle: pip Github repoIch hatte ein ähnliches Problem, als ich von Github Repo installieren musste, wollte aber nicht Git usw. installieren.
Der einfache Weg, dies zu tun, ist die Verwendung des Zip-Archivs des Pakets. In
/zipball/master
an die Repo - URL:Auf diese Weise können Sie Pip mit Github-Quell-Repositorys arbeiten lassen.
quelle
Wenn Sie eine
requirements.txt
Datei verwenden möchten, benötigen Siegit
und so etwas wie den folgenden Eintrag, um den Hauptzweig in Ihrem anonym abzurufenrequirements.txt
.Für die reguläre Installation:
Für " bearbeitbare " Installation:
Im bearbeitbaren Modus wird der Quellcode des Projekts
./src
in das aktuelle Verzeichnis heruntergeladen . Es ermöglichtpip freeze
die Ausgabe des korrekten Github-Speicherorts des Pakets.quelle
#egg=django-celery
? Ist das ein Platzhalter?Klonen Sie das Ziel-Repository auf die gleiche Weise wie beim Klonen eines anderen Projekts:
Dann installieren Sie es im Entwicklungsmodus:
Sie können alles ändern, was Sie nicht möchten, und jeder Code, der das
foo
Paket verwendet, verwendet geänderten Code.Diese Lösung bietet zwei Vorteile:
.git
dir, also ist es das reguläre Git-Repository. Sie können sofort an Ihre Gabel drücken.quelle
pip
, also habe ich daspip
Repository geklont , eine virtuelle Umgebung erstellt, sie aktiviert und es getanpip install -e .
. Dann war daspip
in der virtuellen Umgebung im Entwicklungsmodus! Ich bin beeindruckt, dass dies auch mit dem Paketmanager selbst funktioniert.pip list
stelle fest, dass das betreffende Paket bei der Installation mit dieser Methode und der anschließenden Ausführung Verweise auf den Git-Zweig und den absoluten Pfad enthält, von dem aus es installiert wurde. Enthält es Verweise auf diese oder kann die Quelle gelöscht werden?Sie können diesen Weg in Colab versuchen
quelle