Auf meinem Computer wird Windows hinter einem Proxy auf einem Windows-Server ausgeführt (unter Verwendung von Active Directory), und ich kann nicht herausfinden, wie ich damit pip
umgehen soll (in Python3). Ich habe es versucht --proxy
, aber es sind immer noch nur Timeouts. Ich habe auch versucht, eine lange Zeitüberschreitung (60er Jahre) einzustellen, aber das machte keinen Unterschied. 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 jeder weiß, dass ich sie ausprobieren kann, oder gibt es einige Einschränkungen in pip
Bezug auf Windows-Proxys?
Update: Meine fehlgeschlagenen Versuche umfassten die Suche nach Pypi. Ich habe gerade versucht, etwas zu installieren, und es hat funktioniert. Die Suche schlägt jedoch immer noch fehl. Zeigt dies einen Fehler an pip
oder funktionieren sie anders?
quelle
Ich habe ein paar Stunden gebraucht, um das herauszufinden, aber ich habe es endlich mit CNTLM zum Laufen gebracht und danach nur noch mit einer Pip-Konfigurationsdatei. Hier ist, wie ich es mit der Pip-Konfigurationsdatei zum Laufen gebracht habe ...
Lösung:
1. Navigieren Sie in Windows zu Ihrem Benutzerprofilverzeichnis (Bsp. C: \ Users \ Sync) und erstellen Sie einen Ordner mit dem Namen " pip ".
2. Erstellen Sie in diesem Verzeichnis eine Datei mit dem Namen " pip.ini " (Bsp. C: \ Users \ Sync \ pip \ pip.ini) und geben Sie Folgendes ein:
Ersetzen Sie [Domainname] , [Benutzername] , [Passwort] , [Proxy-Adresse] und [Proxy-Port] durch Ihre eigenen Informationen.
Hinweis: Wenn Ihr [Domainname] , [Benutzername] oder [Passwort] Sonderzeichen enthält, müssen Sie | in Prozent codieren verschlüsseln sie.
3. Zu diesem Zeitpunkt konnte ich " pip install " ohne Probleme ausführen .
Hoffentlich funktioniert das auch für andere!
PS: Dies kann ein Sicherheitsrisiko darstellen, da Ihr Passwort im Klartext gespeichert ist. Wenn dies ein Problem darstellt, sollten Sie CNTLM mithilfe dieses Artikels einrichten (ermöglicht die Verwendung eines Hash-Kennworts anstelle von einfachem Text). Anschließend
proxy = 127.0.0.1:3128
in der oben genannten Datei "pip.ini" einstellen.quelle
PIP_CONFIG_FILE
Umgebungsvariable so einstellen , dass sie auf die DateiSo habe ich es eingerichtet:
Exportieren Sie die Proxy-Einstellungen:
set http_proxy=http://username:password@proxyAddress:port
set https_proxy=https://username:password@proxyAddress:port
Installieren Sie das Paket, das Sie installieren möchten:
pip install PackageName
Beispielsweise:
quelle
--proxy
Argument es überhaupt nicht hätte, aber der Standard-Env-Var-Ansatz funktionierte beim ersten Mal. Für die Aufzeichnung haben wir auch festgelegtno_proxy
, dass andere interne Anforderungen vermieden werden, die versuchen, über den Proxy zu gehen.cygwin
odercmder
und dann tun Sie es dem Linux - Weg:export http_proxy=<proxy>
undexport https_proxy=<proxy>
und führen Sie dann nurpip install <package>
--proxy
Kommandozeilen-Flag hat es nie getan. Windows 10.Unter Windows 7 stieß ich auf dasselbe Problem. Ich habe es geschafft, es zum Laufen zu bringen, indem ich einen "pip" -Ordner mit einer "pip.ini" -Datei darin erstellt habe. Ich habe diesen Ordner in "C: \ Users \ {my.username} \ AppData \ Roaming" abgelegt, weil gemäß der Python-Dokumentation:
In der pip.ini-Datei habe ich nur:
Also kein Benutzername: Passwort. Und es funktioniert gut.
quelle
Ich hatte ein ähnliches Problem und stellte fest, dass mein Unternehmen die NTLM-Proxyauthentifizierung verwendet. Wenn Sie diesen Fehler in Ihrer pip.log sehen, ist dies wahrscheinlich das Problem:
NTLMaps können verwendet werden, um eine Schnittstelle zum NTLM-Proxyserver herzustellen, indem 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 auch diese Standardwerte in der
server.cfg
Datei ändern in:http://ntlmaps.sourceforge.net/
quelle
Möglicherweise treten auch Probleme mit Zertifikaten von Ihrem Proxy auf. Hier finden Sie zahlreiche Antworten zum Abrufen des Zertifikats Ihres Proxys.
Auf einem Windows-Host möchten Sie möglicherweise eine Umgebungsvariable festlegen, damit pip Ihren Proxy löschen kann:
Sie können das
--cert
Argument auchPIP
mit demselben Ergebnis verwenden.quelle
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 recht einfach. Ich musste
NO_PROXY
mit cmd setzen:Sie müssen doppelte Anführungszeichen verwenden und
NO_PROXY
auf Großbuchstaben setzen. Sie können auchNO_PROXY
eine Umgebungsvariable hinzufügen , anstatt sie bei jeder Verwendung der Konsole festzulegen.Ich hoffe, dies wird helfen, wenn eine andere hier veröffentlichte Lösung funktioniert.
quelle
Installieren Sie cntlm: Cntlm: Fast NTLM Authentication Proxy in C.
Config cntlm.ini:
starte es:
Jetzt in cmd.exe:
funktioniert!
Sie können das Passwort auch ausblenden: https://stormpoopersmith.com/2012/03/20/using-applications-behind-a-corporate-proxy/
quelle
Das gleiche Problem unter Windows 10 und höher funktioniert bei mir nicht.
Verwenden Sie ein Emulatorkonsolen-Tool wie das folgende
cygwin
und führen Sie es wie folgt aus:und die Dinge funktionieren gut.
quelle