Ich habe mit dem Befehl eine Bibliothek installiert
pip install git+git://github.com/mozilla/elasticutils.git
Dadurch wird es direkt aus einem Github-Repository installiert. Das funktioniert gut und ich möchte diese Abhängigkeit in meinem haben requirements.txt
. Ich habe mir andere Tickets wie dieses angesehen, aber das hat mein Problem nicht gelöst. Wenn ich so etwas setze
-f git+git://github.com/mozilla/elasticutils.git
elasticutils==0.7.dev
In der requirements.txt
Datei führt a pip install -r requirements.txt
zu folgender Ausgabe:
Downloading/unpacking elasticutils==0.7.dev (from -r requirements.txt (line 20))
Could not find a version that satisfies the requirement elasticutils==0.7.dev (from -r requirements.txt (line 20)) (from versions: )
No distributions matching the version for elasticutils==0.7.dev (from -r requirements.txt (line 20))
In der Dokumentation der Anforderungsdatei werden keine Links erwähnt, die den git+git
Protokollspezifizierer verwenden. Daher wird dies möglicherweise einfach nicht unterstützt.
Hat jemand eine Lösung für mein Problem?
git+git
Variante verwendet (die funktioniert hat). Inrequirements.txt
Ihrer Version funktioniert, also vielen Dank :)docs
Link funktionierte nicht für mich; Ich habe einen älteren benutzt .-e git+git://
statt sein-e git://
? Ich habe die Fehlermeldung "Sollte entweder ein Pfad zu einem lokalen Projekt oder eine VCS-URL sein, die mit svn +, git +, hg + oder bzr + beginnt" erhalten .Normalerweise würde Ihre
requirements.txt
Datei ungefähr so aussehen:Um ein Github-Repo anzugeben, benötigen Sie die
package-name==
Konvention nicht.Die folgenden Beispiele werden
package-two
mit einem GitHub-Repo aktualisiert . Der Text zwischen@
und#
bezeichnet die Besonderheiten des Pakets.Geben Sie den Commit-Hash an (
41b95ec
im Kontext der Aktualisierungrequirements.txt
):Geben Sie den Filialnamen (
master
) an:Geben Sie tag (
0.1
) an:Geben Sie release (
3.7.1
) an:Beachten Sie, dass dies
#egg=package-two
hier kein Kommentar ist, sondern dass der Paketname explizit angegeben werden sollDieser Blog-Beitrag enthält weitere Diskussionen zu diesem Thema.
quelle
-e
Optionen, die wie Kommandozeilen ( ) aussahen . Vielen Dank, dass Sie eine Mischung aus beiden gezeigt haben, damit ich dies in einen Zusammenhang bringen kann!3.7.1
mitgit+git://github.com/path/to/package-two@releases/tag/v3.7.1#egg=package-two
hat bei mir nicht funktioniert. Was für mich funktioniert hat wargit+git://github.com/path/to/[email protected]#egg=package-two
.git+git://...
Notation verursachte irgendwie ssh-relative Fehler auf meiner Linux-Box. Also habe ich sie aufgit+https://...
Notation umgestellt und dann funktionieren sie perfekt.requirements.txt
Ermöglicht die folgenden Möglichkeiten zum Festlegen einer Abhängigkeit von einem Paket in einem Git-Repository ab Pip 7.0: 1Für Github bedeutet dies, dass Sie Folgendes tun können (beachten Sie das Ausgelassene
-e
):Warum die zusätzliche Antwort?
Die
-e
Flagge in den anderen Antworten hat mich etwas verwirrt. Hier ist meine Klarstellung:Das Flag
-e
oder--editable
bedeutet, dass das Paket installiert ist<venv path>/src/SomeProject
und somit nicht in dem tief vergrabenen, in dem<venv path>/lib/pythonX.X/site-packages/SomeProject
es sonst platziert würde. 2Dokumentation
quelle
-e
nächste weglassen,pip freeze
möglicherweise nicht die richtigen Ergebnisse für dieses PaketInstallieren Sie zuerst mit
git+git
odergit+https
, wie Sie wissen. Beispiel für die Installationkronok
desbrabeion
Projektzweigs:Zweitens verwenden Sie
pip freeze > requirements.txt
, um das Richtige in Ihrem zu bekommenrequirements.txt
. In diesem Fall erhalten SieDrittens testen Sie das Ergebnis:
quelle
no such option: -e
git+https
? In dem Text, den Sie sagen,git+git
und im Codegit+https
Seit pip
v1.5
(veröffentlicht am 1. Januar 2014: CHANGELOG , PR ) können Sie auch ein Unterverzeichnis eines Git- Repos angeben, das Ihr Modul enthält. Die Syntax sieht folgendermaßen aus:Hinweis: Als Autor eines Pip-Moduls möchten Sie Ihr Modul im Idealfall wahrscheinlich in einem eigenen Top-Level-Repo veröffentlichen, wenn Sie können. Diese Funktion ist jedoch hilfreich für einige bereits vorhandene Repos, die Python-Module in Unterverzeichnissen enthalten. Sie könnten gezwungen sein, sie auf diese Weise zu installieren, wenn sie nicht auch auf pypi veröffentlicht werden.
quelle
Ich finde, dass es schwierig ist, pip3 (v9.0.1, wie vom Paketmanager von Ubuntu 18.04 installiert) dazu zu bringen, das zu installieren, was ich ihm sage. Ich poste diese Antwort, um jedem Zeit zu sparen, der auf dieses Problem stößt.
Das Einfügen in eine Datei "require.txt" ist fehlgeschlagen:
Mit "fehlgeschlagen" meine ich, dass beim Herunterladen des Codes von Git die ursprüngliche Version des Codes, wie sie auf PyPi zu finden ist, anstelle des Codes im Repo in diesem Zweig installiert wurde.
Die Installation des Commmit anstelle des Filialnamens funktioniert jedoch wie folgt:
quelle