Beim Versuch, einen einfachen Weg zu finden, Python-Skripte innerhalb einer Organisation zu verteilen, ist die vorgeschlagene Situation mit pip, wie sie durch die veralteten Nachrichten impliziert wird, absurd.
Sie können ein einzelnes Paket _leicht_ auf einem Git-Server verteilen (was die meisten Organisationen haben) ... aber Sie können ein Paket nicht einfach verteilen, das von einigen anderen internen Paketen abhängen könnte.
Wenn pip die Verarbeitung von Dependency_Links entfernt, wird diese Art der Verteilung völlig unmöglich - was für mich in starkem Kontrast zu etwas wie npm
das dies absurd einfach macht.
Sicher, machen Sie es nicht implizit - aber es muss einen einfachen Weg geben, wie ich einem Kollegen einen einzeiligen Befehl senden kann, der ein Paket mit einer Reihe anderer Git-Abhängigkeiten pip installiert.
Die ideale Lösung wäre eine Möglichkeit, pip zu zwingen, die Datei requirements.txt
aus einem Git-Repository zu verarbeiten, damit das Repository seine anderen Anforderungen speziell definieren könnte (da dies definitiv eine Bibliothek in einem Git-Repository tut).
Perfekt wäre so etwas wie:
pip install --follow-requirements git+http://my.internal.gitserver/internallibrary.git
Vielleicht eine Aufforderung für die nicht vertrauenswürdigen Anforderungen geben?
Wir werden Abhängigkeitslinks nicht entfernen, bis der Ersatz für sie implementiert ist (den PyPI versteht und erzwingen kann, dass Sie keine Pakete hochladen, die sich auf sie verlassen).
@dstufft Was ist dieser Ersatz?
Ich habe zwei Pakete PackageA und PackageB, die in privaten Git-Repositorys gespeichert sind, und eine Anwendungs-App. App hängt von PackageA ab und PackageA hängt von PackageB ab. Ich habe keine Möglichkeit gefunden, PackageB automatisch als Abhängigkeit von PackageA zu installieren, wenn die App-Anforderungen installiert werden.
@connorbode wie wäre es mit dem Einrichten eines Devpi-Index mit den Releases, dann können Sie pip auf das Devpi als Index verweisen und benötigen keine Abhängigkeitslinks und es wird auch pypi in Ihrem Arbeitsnetzwerk spiegeln / zwischenspeichern
Hilfreichster Kommentar
@dstufft Was ist dieser Ersatz?
Ich habe zwei Pakete PackageA und PackageB, die in privaten Git-Repositorys gespeichert sind, und eine Anwendungs-App. App hängt von PackageA ab und PackageA hängt von PackageB ab. Ich habe keine Möglichkeit gefunden, PackageB automatisch als Abhängigkeit von PackageA zu installieren, wenn die App-Anforderungen installiert werden.