web-dev-qa-db-de.com

Pip funktioniert nicht hinter der Firewall

Ich versuche, pip hinter einer Unternehmensfirewall zu verwenden und habe kein Glück.

Ich habe die Umgebungsvariablen http_proxy und https_proxy eingestellt. wget funktioniert, aber nicht pip.

Ich habe das versucht ...

Sudo -E pip install virtualenv

mit diesen Proxies ...

export http_proxy=myproxyname.mydomain.com:8080
export https_proxy=myproxyname.mydomain.com:8080 

... und bekam einen langen Stacktrace, der damit endete

/requests/packages/urllib3/poolmanager.py", line 214, in __init__
'Not supported proxy scheme %s' % self.proxy.scheme
AssertionError: Not supported proxy scheme None

Ich habe mir die Quelle poolmanager.py angesehen. Es sieht so aus, als müssten die Proxy-Variablen mit einem Schema beginnen. Also versuchte ich es noch einmal mit den folgenden Proxies ...

export http_proxy=http://myproxyname.mydomain.com:8080
export https_proxy=https://myproxyname.mydomain.com:8080 (also tried this with http://)

... und ich erhalte folgende Fehlermeldung

Downloading/unpacking virtualenv
  Cannot fetch index base URL https://pypi.python.org/simple/
  Could not find any downloads that satisfy the requirement virtualenv
Cleaning up...
No distributions at all found for virtualenv
Storing debug log for failure in /root/.pip/pip.log

Dies ist der gleiche Fehler, den ich bekomme, wenn ich keinen Proxy habe, obwohl ich ihn viel schneller bekomme, wenn die Proxys gesetzt sind.

Wenn ich wget versuche ... 

wget --no-check-certificate https://pypi.python.org/simple/

Es funktioniert gut, also denke ich, dass die Proxys selbst ok sind, es sei denn, ich versuche sie mit pip.

Die Verwendung der --proxy-Option anstelle von envvars hat nicht geholfen. Gleiche Ergebnisse.

Irgendwelche Ideen?

Danke, Bean

18
Bean Taxi

Verwenden Sie das Argument --trusted-Host.

Ich habe herausgefunden, wie ich es hinter meiner Firewall mit Hilfe des Argumentes --trusted-Host erreichen kann.

Mein erster Versuch war folgender: 

pip install matplotlib

und der fehlgeschlagene Text lautete:

URL https://pypi.python.org/simple/matplotlib/ : There konnte nicht abgerufen werden war ein Problem beim Bestätigen des SSL-Zertifikats: [SSL: CERTIFICATE_VERIFY_FAILED] Zertifikatprüfung fehlgeschlagen (_ssl.c: 645) - überspringen

Also habe ich versucht, was funktioniert:

pip3.5 install matplotlib --trusted-Host pypi.python.org

14
user3398996

Das hat bei mir funktioniert

export HTTP_PROXY=http://myusr:[email protected]:8080
export HTTPS_PROXY=https://myusr:[email protected]:8080
Sudo -E pip3 install --proxy http://myusr:[email protected]:8080 virtualenv
7
Joram

Ich musste das alles in Windows einstellen, damit es funktioniert.

set http_proxy=http://proxy.corp.com:8083
set https_proxy=http://proxy.corp.com:8083
set all_proxy=http://proxy.corp.com:8083
set no_proxy=localhost,.corp.com

set HTTP_PROXY=http://proxy.corp.com:8083
set HTTPS_PROXY=http://proxy.corp.com:8083
set ALL_PROXY=http://proxy.corp.com:8083
set NO_PROXY=localhost,.corp.com

set PATH=c:\python27\scripts;c:\python27\;%PATH%

Bitte ersetzen Sie proxy.corp.com:8083 durch Ihren http-Proxy-Server.

Danach benutze ich pip install numpy

[Letztes ".corp.com" fehlte eine Periode (reparierte es). Übrigens, nachdem VIELE Haare hinter unserer Unternehmensfirewall herausgezogen wurde, war diese Lösung die einzige, die funktionierte! 

5
Damian

pip verfügt über eine Option zum Festlegen des Proxy, daher sollte Folgendes für Sie funktionieren:

Sudo -E pip install --proxy="myproxyname.mydomain.com:8080" virtualenv
2
Odi

dies funktioniert hinter einem Proxy

Sudo -E pip --proxy Benutzername: Kennwort @ http: // IP: Port install 

0
Sasanka

Fügen Sie vor dem Proxy-Hostnamen "http: //" hinzu:

Sudo -E pip install --proxy = "http://myproxyname.mydomain.com:8080" virtualenv
0
Roberto