Ich erstelle eine setup.pyDatei für ein Projekt, das von privaten GitHub-Repositorys abhängt. Die relevanten Teile der Datei sehen folgendermaßen aus:
from setuptools import setup
setup(name='my_project',
...,
install_requires=[
'public_package',
'other_public_package',
'private_repo_1',
'private_repo_2',
],
dependency_links=[
'https://github.com/my_account/private_repo_1/master/tarball/',
'https://github.com/my_account/private_repo_2/master/tarball/',
],
...,
)
Ich verwende setuptoolsanstelle von, distutilsweil letzteres die install_requiresund dependency_linksArgumente gemäß dieser Antwort nicht unterstützt .
Die obige Setup-Datei greift nicht mit einem 404-Fehler auf die privaten Repos zu - was zu erwarten ist, da GitHub einen 404 an nicht autorisierte Anforderungen für ein privates Repository zurückgibt. Ich kann jedoch nicht herausfinden, wie ich mich setuptoolsauthentifizieren soll.
Hier sind einige Dinge, die ich versucht habe:
Verwenden Sie
git+ssh://statthttps://independency_linkswie bei der Installation des Repos mitpip. Dies schlägt fehl, weil setuptools dieses Protokoll nicht erkennt ("unbekannter URL-Typ: git + ssh"), obwohl die Distributionsdokumentation dies vorschreibt . Dittogit+httpsundgit+http.https://<username>:<password>@github.com/...- Erhalte immer noch eine 404. (Diese Methode funktioniert auch nicht mitcurloderwgetüber die Befehlszeile - obwohlcurl -u <username> <repo_url> -O <output_file_name>sie funktioniert.)Aktualisieren von setuptools (0.9.7) und virtualenv (1.10) auf die neuesten Versionen. Ich habe auch versucht, Distribute zu installieren, obwohl diese Übersicht besagt, dass es wieder in Setuptools zusammengeführt wurde. So oder so, keine Würfel.
Derzeit habe ich nur setup.pyeine Warnung ausgedruckt, dass die privaten Repos separat heruntergeladen werden müssen. Dies ist offensichtlich nicht ideal. Ich habe das Gefühl, dass etwas Offensichtliches fehlt, kann mir aber nicht vorstellen, was es sein könnte. :) :)
Doppelte Frage ohne Antworten hier .