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