Pip-Installation aus privatem Git-Repo, mit persönlichem Zugriffstoken in Git-URL

Lesezeit: 3 Minuten

Benutzeravatar von Umang Agrawal
Umang Agrawal

Ich versuche, ein Paket aus einem privaten Repository auf Git zu installieren.
Ich verwende Personal Access Token in meiner Git-URL, um den manuellen Authentifizierungsschritt zu umgehen. (Sie können über persönliche Zugriffstoken lesen hier)
Wenn ich diese Git-URL in die Anforderungsdatei einfüge und dann die Anforderungsdatei in Pip verwende, um Build zu installieren, funktioniert es.

requirements.txt
<package name> @ git+https://<Personal Access Token>@<git server address>/<username>/<repository name>[email protected]<branch name>#egg=<package name>

Aber wenn ich dieselbe URL direkt verwende, fragt sie nach dem Passwort, wie vermeide ich diese Passwortabfrage (wie unten erwähnt):

pip install git+https://<Personal Access Token>@<git server address>/<username>/<repository name>[email protected]<branch name>#egg=<package name>

Dieses Problem tritt nicht auf allen Computern auf, auf denen ich getestet habe. Es funktionierte unter Win 10 x64 und Win 10 x86. Aber es funktionierte nicht unter Ubuntu x64. Ich habe sichergestellt, dass alle 3 Systeme dieselbe Python-Version (3.8.0) und dieselbe Pip-Version (19.3.1) haben.

  • Ihr zweiter Codeblock, pip install git+https://...funktionierte für die Installation meines persönlichen Repos von GitHub in einer Colab-Instanz

    – CrepeZiege

    28. Mai 2021 um 0:08 Uhr

Benutzeravatar von bubbassauro
Bubbassauro

Verwenden Umgebungsvariablen mit der Syntax ${VARIABLE} (POSIX-Format, Großbuchstaben und Unterstriche erlaubt), damit Sie Ihre Geheimnisse nicht fest codieren.

Pip wird bei der Installation aus der requirements.txt ersetzt.

So können Sie beispielsweise auf ein Token verweisen, um das private Repo zu klonen:

in Anforderungen.txt

GitHub

git+https://${GITHUB_TOKEN}@github.com/user/[email protected]{version}

Gitlab

git+https://${GITLAB_TOKEN_USER}:${GITLAB_TOKEN}@gitlab.com/user/[email protected]{version}

Bit Bucket

git+https://${BITBUCKET_USER}:${BITBUCKET_APP_PASSWORD}@bitbucket.org/user/[email protected]{version}

Mehr Infos hier:
https://docs.readthedocs.io/en/stable/guides/private-python-packages.html

Benutzeravatar von neves
Neves

Gehen Sie zu den GitLab-Profileinstellungen und generieren Sie ein Lesezugriffstoken:

GitLab-Profil

  1. Wählen Sie Zugriffstoken aus
  2. Geben Sie ihm einen Namen (Sie können das Ablaufdatum leer lassen)
  3. Geben Sie ihm Lesezugriff auf alle Repositories, auf die Sie Zugriff haben
  4. erzeuge es

Bearbeiten Sie nun Ihre Anforderungsdatei:

pandas==1.0.5
git+https://yourgitlabuser:<generated_token>@gitlab/group/[email protected]#egg=piplib
requests==2.24.0

Benutzeravatar von Sander Vanden Hautte
Sander Vanden Hautte

Ich hatte gerade das gleiche Problem. Am Ende konnte ich das Paket wie folgt installieren.

  • von der Kommandozeile:

pip install mypackagename --no-deps --index-url https://gitlab+deploy-token-mytokenname:[email protected]/api/v4/projects/123456789/packages/pypi/simple

  • durch Angabe in der requirements.txt Datei:

(Beachten Sie, dass die Anforderungen an das Flask- und Flask-Cors-Paket im folgenden Beispiel nur ein Beispiel sind, da es für einen Leser wirklich seltsam erscheinen mag, dass die anderen Zeilen im Beispiel wirklich Inhalt sind, der in eine requirements.txt geschrieben werden kann.)

flask==1.1.1
flask-cors==3.0.8
--index-url https://pypi.org/simple --extra-index-url https://gitlab+deploy-token-mytokenname:t[email protected]/api/v4/projects/123456789/packages/pypi/simple
mypackagename

Dann natürlich laufen pip install -r requirements.txt.

Beachten Sie, dass beide obigen Fragmente zeigen, wie Sie Ihr Passwort angeben, wie Sie es gefragt haben.

1429460cookie-checkPip-Installation aus privatem Git-Repo, mit persönlichem Zugriffstoken in Git-URL

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy