So verwenden Sie pip unter Windows hinter einem authentifizierenden Proxy
Lesezeit: 6 Minuten
Aquavitae
Auf meinem Computer läuft Windows hinter einem Proxy auf einem Windows-Server (unter Verwendung von Active Directory), und ich kann nicht herausfinden, wie ich damit umgehen kann pip (bei Python3). Ich habe versucht mit --proxy, aber es gibt immer noch nur Timeouts. Ich habe auch versucht, ein langes Timeout (60s) einzustellen, aber das hat keinen Unterschied gemacht. Meine Proxy-Einstellungen sind korrekt und ich habe sie mit denen verglichen, die ich erfolgreich in TortoiseHG verwende, um sicherzugehen.
Gibt es andere Tricks, von denen jemand weiß, die ich ausprobieren kann, oder gibt es eine Einschränkung in pip in Bezug auf Windows-Proxys?
Aktualisieren: Meine fehlgeschlagenen Versuche beinhalteten die Suche nach pypi. Ich habe gerade versucht, etwas zu installieren und es hat funktioniert. Die Suche schlägt trotzdem fehl. Weist dies auf einen Fehler in pip oder funktionieren die anders?
Ich habe 2 Optionen ausprobiert, die beide auf dem NTLM-authentifizierten Proxy meiner Firma funktionieren. Option 1 ist zu verwenden --proxy http://user:[email protected]:proxyPort
Wenn Sie immer noch Probleme haben, würde ich vorschlagen, einen Proxy-Authentifizierungsdienst zu installieren (ich verwende CNTLM) und mit Pip darauf zeigen, also so etwas wie --proxy http://localhost:3128
Das CNTLM-Tool wird aktiv gewartet und scheint wirklich gut zu funktionieren.
– Michał Fita
19. Dezember ’12 um 10:46
Ich konnte es nicht zum Laufen bringen, egal alle Versuche, die ich gemacht habe
– Jambr
4. Feb. ’15 um 12:04
Wenn Ihr Passwort oder Benutzername Sonderzeichen enthält, maskieren Sie es einfach mit vor dem Sonderzeichen. Es funktioniert gut.
– Arockien
13. Januar ’17 um 4:51
Verstehe ich das richtig, dass Sie pip anweisen, die Anfrage an den Proxy zu senden und sich mit dem angegebenen Benutzer und Passwort über eine http-Verbindung zu authentifizieren? Das heißt, Ihr Passwort wird unverschlüsselt an den Proxy-Server gesendet, oder!? Sieht für mich nach einem großen Sicherheitsrisiko aus oder übersehe ich etwas?
– Robert
10. Apr. ’19 um 14:52
Bei mir hat es mit einer Microsoft Forefront Firewall funktioniert
– Raúl Salinas-Monteagudo
17. April ’19 um 7:42
Synchronisieren
Ich habe ein paar Stunden gebraucht, um das herauszufinden, aber ich habe es endlich mit CNTLM zum Laufen gebracht und danach nur mit einer Pip-Konfigurationsdatei zum Laufen gebracht. So habe ich es mit der pip-Konfigurationsdatei zum Laufen gebracht …
Lösung:
1. Navigieren Sie in Windows zu Ihrem Benutzerprofilverzeichnis (z. B. C:BenutzerSync) und erstellen Sie einen Ordner mit dem Namen “Pip“
2. Erstellen Sie eine Datei mit dem Namen “pip.ini” in dieses Verzeichnis (Bsp. C:UsersSyncpippip.ini) und geben Sie folgendes ein:
Ersetzen [domain name], [username], [password], [proxy address] und [proxy port] mit eigenen Angaben.
Beachten Sie, wenn Ihr [domain name], [username] oder [password] Sonderzeichen hat, musst du Prozentcodierung | kodieren Ihnen.
3. An diesem Punkt konnte ich laufen”pip installieren“ohne Probleme.
Hoffentlich funktioniert das auch bei anderen!
PS: Dies kann ein Sicherheitsproblem darstellen, da Ihr Passwort im Klartext gespeichert wird. Wenn dies ein Problem ist, sollten Sie CNTLM mit einrichten Dieser Beitrag (ermöglicht die Verwendung eines gehashten Passworts anstelle von Klartext). Danach einstellen proxy = 127.0.0.1:3128in der oben erwähnten Datei “pip.ini”.
Weitere Informationen zum Standort von pip.ini finden Sie Hier. Sie können einstellen PIP_CONFIG_FILE Umgebungsvariable, die auf die Datei pip.ini verweist
– Mahesha999
7. September ’16 um 13:05
Liebe es!!!! Also sauber – denken Sie daran, dass Sie bei den meisten Proxys Ihr Passwort manuell eingeben können. Hinterlassen Sie Ihr Passwort NIEMALS im Klartext!
– avgvstvs
9. März ’18 um 19:54
Eine weitere sehr wichtige globale Einstellung kann hier hinzugefügt werden, ist die Mirror-Site, zum Beispiel fügen Sie “index-url = pypi.tuna.tsinghua.edu.cn/simple” würde die Pip-Download-Geschwindigkeit in der VR China stark erhöhen. Und die entsprechende Datei unter Linux ist ~/.pip/pip.conf
– TingQian LI
13. März ’18 um 10:30
was ist [domain name]?
– Alex B
24. Mai ’18 um 20:20
@AlexB, [domain name] bezieht sich auf deine Fenster Domainname
– Mike Pennington
11. April ’19 um 20:42
Heinrich Cloete
So habe ich es eingerichtet:
Öffnen Sie die Eingabeaufforderung (CMD) als Administrator.
Installieren Sie das Paket, das Sie installieren möchten:
pip install PackageName
Beispielsweise:
Dies ist definitiv das erste, was Sie versuchen sollten. Python ist plattformübergreifend und entspricht dem, was wir normalerweise unter Linux tun. Hatte Probleme unter Windows (hinter demselben Proxy), wo die --proxy Argument hätte es einfach nicht, aber der Standardansatz env var funktionierte beim ersten Mal. Für das Protokoll stellen wir auch no_proxy um zu vermeiden, dass andere interne Anfragen versuchen, über den Proxy zu gehen.
– Randomsocke
2. November ’17 um 12:08
funktioniert bei mir unter win10 nicht. Verwenden Sie ein Emulator-Konsolentool wie cygwin oder cmder und dann machen Sie es auf die Linux-Art: export http_proxy=<proxy> und export https_proxy=<proxy> und dann mach einfach pip install <package>
– bock
14. Juni ’19 um 10:47
Das hat bei mir funktioniert, aber die --proxy Befehlszeilen-Flag hat es nie getan. Windows10.
– AmbroseKapelle
8. Januar ’20 um 2:17
Ich bin unter Windows 7 auf das gleiche Problem gestoßen. Ich habe es geschafft, es zum Laufen zu bringen, indem ich einen Ordner “pip” mit einer Datei “pip.ini” darin erstellt habe. Ich habe diesen Ordner in “C:Users{my.username}AppDataRoaming” abgelegt, weil laut der Python-Dokumentation:
Unter Windows ist die Konfigurationsdatei %APPDATA%pippip.ini
In der pip.ini-Datei habe ich nur:
[global]
proxy = [proxy address]:[proxy port]
Also kein Benutzername:Passwort. Und es funktioniert einwandfrei.
Monkut
Ich hatte ein ähnliches Problem und stellte fest, dass mein Unternehmen die NTLM-Proxy-Authentifizierung verwendet. Wenn Sie diesen Fehler in Ihrem pip.log sehen, ist dies wahrscheinlich das Problem:
URL konnte nicht abgerufen werden http://pypi.python.org/simple/pyreadline: HTTP-Fehler 407: Proxy-Authentifizierung erforderlich (Der ISA-Server benötigt eine Autorisierung, um die Anforderung zu erfüllen. Der Zugriff auf den Web-Proxy-Filter wird verweigert.)
NTLMaps kann als Schnittstelle zum NTLM-Proxyserver verwendet werden, indem es ein Zwischenproxy wird.
Laden Sie NTLMAPs herunter, aktualisieren Sie die enthaltene server.cfg, führen Sie die Datei main.py aus und zeigen Sie die Proxy-Einstellung von pip auf 127.0.0.1:.
Ich musste diese Standardwerte auch in der ändern server.cfg Datei an:
LM_PART:1
NT_PART:1
# Highly experimental option. See research.txt for details.
# LM - 06820000
# NT - 05820000
# LM + NT -
NTLM_FLAGS: 07820000
Ich hatte das gleiche Problem in einer Remote-Windows-Umgebung. Ich habe viele Lösungen ausprobiert, die hier oder in anderen ähnlichen Beiträgen gefunden wurden, aber nichts hat funktioniert. Schließlich war die Lösung ganz einfach. ich musste einstellen NO_PROXY mit cmd:
set NO_PROXY="<domain><username>:<password>@<host>:<port>"
pip install <packagename>
Sie müssen doppelte Anführungszeichen verwenden und festlegen NO_PROXY in Großbuchstaben. Sie können auch hinzufügen NO_PROXY als Umgebungsvariable, anstatt sie jedes Mal festzulegen, wenn Sie die Konsole verwenden.
Ich hoffe, das hilft, wenn eine andere hier gepostete Lösung funktioniert.
.
3103600cookie-checkSo verwenden Sie pip unter Windows hinter einem authentifizierenden Proxyyes