Ich erstelle eine setup.py
Datei 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 setuptools
anstelle von, distutils
weil letzteres die install_requires
und dependency_links
Argumente 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 setuptools
authentifizieren soll.
Hier sind einige Dinge, die ich versucht habe:
Verwenden Sie
git+ssh://
statthttps://
independency_links
wie 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+https
undgit+http
.https://<username>:<password>@github.com/...
- Erhalte immer noch eine 404. (Diese Methode funktioniert auch nicht mitcurl
oderwget
ü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.py
eine 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 .