2013-09-29 3 views
36

Ich versuche, Python-Paket-Manager-Pip zu verwenden, um ein Paket und seine Abhängigkeiten aus dem Internet zu installieren. Jedoch bin ich hinter einem Proxy in meinem College und habe bereits die Umgebungsvariable http_proxy gesetzt. Aber wenn ich versuche, ein Paket wie diese zu installieren:Wie bekomme ich Pip zur Arbeit hinter einem Proxy-Server

pip install TwitterApi 

ich diesen Fehler in der Log-Datei erhalten:

Getting page http://pypi.python.org/simple/TwitterApi 
Could not fetch URL http://pypi.python.org/simple/TwitterApi: <urlopen error [Errno 111] Connection refused> 
Will skip URL http://pypi.python.org/simple/TwitterApi when looking for download links for TwitterApi 
Getting page http://pypi.python.org/simple/ 
Could not fetch URL http://pypi.python.org/simple/: <urlopen error [Errno 111] Connection refused> 

ich sogar versucht, meine Proxy-Variable Einstellung explizit wie folgt aus:

pip install --proxy http://user:[email protected]:port TwitterApi 

Aber ich bekomme immer noch den gleichen Fehler. Wie bekomme ich Pip zur Arbeit hinter einem Proxy-Server?

+1

können Sie sehen in Ihrem Browser pypi.python.org? – nachshon

+0

Ja. Ich kann problemlos im Internet surfen. Ich habe auch Proxy für wget in der wgetrc-Datei konfiguriert und 'wget' scheint zu funktionieren. Sogar 'git' arbeitet mit einer Konfiguration von Proxy. Aber "Pip" wirft den gleichen Fehler. – Annihilator8080

+0

Finden Sie diese Antwort auf eine ähnliche Frage. http://stackoverflow.com/questions/11726881/how-to-set-an-http-proxy-in-python-2-7 – mordechai

Antwort

55

Der Proxy-Parameter des Pip ist, nach pip --help in Form scheme://[user:[email protected]]proxy.server:port

Folgendes sollten Sie verwenden:

pip install --proxy http://user:[email protected]:port TwitterApi 

Auch die HTTP_PROXY env var sollte respektiert werden.

Beachten Sie, dass in früheren Versionen (nicht die Änderung des Code aufzuspüren konnte, tut mir leid, aber der Doc here wurde aktualisiert), hatte man das scheme:// Teil wegzulassen für sie, das heißt pip install --proxy user:[email protected]:port

zu arbeiten
+1

Wo ist der Unterschied? – svvac

+6

Eigentlich müssen Sie angeben (Protokoll ist erforderlich): 'pip installieren - Proxy http: // Benutzer: Passwort @ Proxyserver: Port ' – Stanislav

+0

In meinem Fall muss ich die Domäne angeben, wie folgt: pip installieren - Proxy DOMÄNE \ Benutzer: Kennwort @ Proxyserver: Port cag

17

Zumindest für pip 1.3.1 werden die Umgebungsvariablen http_proxy und https_proxy berücksichtigt. Stellen Sie sicher, dass Sie beide definieren, da sie über https auf den PYPI-Index zugreifen.

export https_proxy="http://<proxy.server>:<port>" 
pip install TwitterApi 
+0

Dieses didn ' t arbeiten auf CentOS –

+0

Dieser funktioniert für die git-bash-Kommandozeile in Windows 7 nach dem Setzen der https_proxy-Variable im Terminal-Kontext. – MichaelHuelsen

10

Alt Faden, ich weiß, aber für die Zukunft ist die --proxy Option nun mit einem "=" bestanden

Beispiel:

$ sudo pip install --proxy=http://yourproxy:yourport package_name 
1

mindestens PIP3 funktioniert auch ohne "=" jedoch statt "http" Sie müssen möglicherweise "https"

Schluss-Befehl, der für mich gearbeitet:

sudo pip3 install --proxy https://{proxy}:{port} {BINARY} 
0

Wenn Sie Windows verwenden, können Sie versuchen, den Proxy in Internet Explorer zu konfigurieren -> Optionen -> Verbindungen -> LAN-Einstellungen -> Proxy Server. Es beeinflusst das System global.

+0

tut es aber? Es funktioniert nicht für mich – greg121

2

First Try-Proxy mit dem folgenden Befehl

SET HTTPS_PROXY=http://proxy.***.com:PORT# 

Dann setzen Sie den Befehl mit

pip install ModuleName 
+0

Dies funktionierte für mich, wenn keine der anderen Lösungen tat. Verwenden von Windows 7 Pro – Plamen