Wie kann ich einen benutzerdefinierten Git-Zweig in meinem Pipfile angeben?

Lesezeit: 3 Minuten

Benutzeravatar von kuza
Kuza

Es ist möglich, in anzugeben Pipfile Pakete aus dem benutzerdefinierten Git-Repository. Aber ich kann keine umfassende Dokumentation finden, wie man den konkreten Zweig oder ein Commit angibt, das für die Installation verwendet werden soll.

Gibt es eine vollständige Referenz zur Verwendung von Git-URLs für Python-Pakete in der Pipfile die von der unterstützt werden pipenv zum Angeben benutzerdefinierter Branches, Versionen oder Commits?

Es wäre wirklich schön, es mit Äquivalent zu haben pipenv Kommandozeilenargumente.

Benutzeravatar von Alex W
Alex W

Hier ist etwas Dokumentation im GitHub-Repo für pipenv:

Sie können Pakete mit pipenv von Git und anderen Versionskontrollsystemen installieren, indem Sie URLs verwenden, die gemäß der folgenden Regel formatiert sind:

<vcs_type>+<scheme>://<location>/<user_or_organization>/<repository>@<branch_or_tag>#egg=<package_name>

Also zum Beispiel:

[packages]
requests = {git = "https://github.com/requests/requests.git", editable = true, ref = "v2.20.1"}

Sie können eine Pipfile über die Befehlszeile generieren. Das obige Pipfile wurde generiert mit:

pipenv install -e git+https://github.com/requests/[email protected]#egg=requests

Die Dokumentation für pip geht näher ins Detail.

  • Ich habe unsere Pakete von GIT unter Bezugnahme auf diese Dokumentation erfolgreich installiert, während ich diese Frage, die ich gestellt habe, bevor solche Informationen verfügbar waren, völlig vergessen habe. Die erste Referenz der VCS am 20. September 2017 zugesagt, erwähnte die Möglichkeit, Zweige bis zu spezifizieren, nicht Das Die Bearbeitung wurde am 12. August 2018 vorgenommen. Vielleicht ist diese Antwort ein guter Kandidat für ein Community-Wiki?

    – Kuza

    16. Dezember 2018 um 15:29 Uhr

  • Das hat bei mir funktioniert, aber beachten Sie, dass das “Ei” das sein muss ursprünglicher Projektname, nicht irgendein anderer Name, den Sie in dem fehlgeleiteten Versuch definieren, einen Namenskonflikt zu vermeiden. 🙂

    – Nick K9

    27. Dezember 2022 um 16:30 Uhr


Michaels Benutzeravatar
Michael

pip Paketarchive

Neben der hervorragenden Antwort von Alex können Sie auch verwenden pip‘s “archive”-Format auf einer gezippten Kopie des Repositorys. Mehrere Code-Hosts stellen automatisch ZIP-Dateien unter vorhersagbaren URLs bereit.

Warum sollte ich das tun?

Die VCS-Installation funktioniert einwandfrei. Diese Alternative ist praktisch, wenn der Computer, auf dem Sie installieren, kein Git hat, wie z ein “schlankes” Container-Image. Frühere Berichte deuteten darauf hin, dass diese Methode schneller als Git sei, aber sie scheinen jetzt vergleichbar zu sein.

Beispiele

Ersetzen Sie die Token in den folgenden Codebeispielen durch die gewünschten Werte.

Feld Beschreibung
<package> Der Name des Pakets. (Vergleichen Sie den Namen des Pakets mit seiner setup.py!)
<user> Der Repository-Eigentümer
<repo> Der Repository-Name
<refname> SHA verzweigen, markieren oder festschreiben. Bitbucket kann auch verwendet werden default für den Default-Zweig.

Pipfile

[packages]
<package> = {file = "https://github.com/<user>/<repo>/archive/<refname>.zip"}
<package> = {file = "https://bitbucket.org/<user>/<repo>/get/<refname>.zip"}
<package> = {file = "https://codeberg.org/<user>/<repo>/archive/<refname>.zip"}
<package> = {file = "https://gitlab.com/<user>/<repo>/-/archive/<refname>/<repo>-<refname>.zip"}

CLI-Installation

pipenv install https://github.com/<user>/<repo>/archive/<refname>.zip
pipenv install https://bitbucket.org/<user>/<repo>/get/<refname>.zip
pipenv install https://codeberg.org/<user>/<repo>/archive/<refname>.zip
pipenv install https://gitlab.com/<user>/<repo>/-/archive/<refname>/<repo>-<refname>.zip

Warnung

Es gibt Berichte von 2017 und 2018 so anders pip, pipenv wird nicht Abhängigkeiten rekursiv installieren aus Reißverschlüssen. Abhängigkeiten funktionieren bei mir jedoch einwandfrei. Dieses begehen ab September 2018 ist meine beste Vermutung, wann sich die Dinge geändert haben, aber wenn Sie etwas anderes wissen, kommentieren oder bearbeiten Sie es bitte.

1445990cookie-checkWie kann ich einen benutzerdefinierten Git-Zweig in meinem Pipfile angeben?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy