Wie setze ich einen HTTP-Proxy in Python 2.7?

74

Ich versuche, ein Skript auszuführen, das pip: get-pip.py installiert, und erhalte ein Verbindungszeitlimit, da sich mein Netzwerk hinter einem HTTP-Proxy befindet. Gibt es eine Möglichkeit, einen HTTP-Proxy in meiner Python 2.7-Installation zu konfigurieren, um das zu installieren, was ich installieren möchte?

Hinweis: Ich verwende Windows. Unten ist der Fehler, den ich bekomme:

C:\SetupFiles>python get-pip.py
Downloading/unpacking pip
  Cannot fetch index base URL http://pypi.python.org/simple/
  Could not find any downloads that satisfy the requirement pip
No distributions at all found for pip
Rolando
quelle

Antworten:

137

Es sieht so aus, als ob get-pip.pyes aktualisiert wurde, um die Umgebungsvariablen http_proxyund zu verwenden https_proxy.

Windows:

set http_proxy=http://proxy.myproxy.com
set https_proxy=https://proxy.myproxy.com
python get-pip.py

Linux / OS X:

export http_proxy=http://proxy.myproxy.com
export https_proxy=https://proxy.myproxy.com
sudo -E python get-pip.py

Wenn dies bei Ihnen jedoch immer noch nicht funktioniert, können Sie pip jederzeit mit setuptools über einen Proxy installieren , easy_installindem Sie dieselben Umgebungsvariablen festlegen .

Windows:

set http_proxy=http://proxy.myproxy.com
set https_proxy=https://proxy.myproxy.com
easy_install pip

Linux / OS X:

export http_proxy=http://proxy.myproxy.com
export https_proxy=https://proxy.myproxy.com
sudo -E easy_install pip

Verwenden Sie nach der Installation Folgendes:

pip install --proxy="user:password@server:port" packagename

Von der Pip-Manpage :

--proxy Lassen
Sie pip einen Proxyserver verwenden, um auf Sites zuzugreifen. Dies kann mit der Notation "user: [email protected]: port" angegeben werden. Wenn das Passwort weggelassen wird, fragt pip danach.

Ben Burns
quelle
Ihre Antwort scheint davon auszugehen, dass pip bereits installiert ist. Ich habe pip noch nicht erfolgreich installiert. Anweisungen sagen, dass das Skript get-pip.py ausgeführt werden soll, aber ich erhalte ein Verbindungszeitlimit, mit dem ich Probleme habe.
Rolando
@Damascusi, würde es Ihnen etwas ausmachen, mir zu sagen, ob diese env-Variable für das get-pip-Skript funktioniert, damit ich die Antwort entsprechend aktualisieren kann?
Ben Burns
@ BenBurns Ihre Lösung erfordert easy_install, um installiert zu werden, aber ich brauche einen Proxy, um das auch zu installieren ...
youR.Fate
Ich habe die Installation mit http_proxy und https_proxy satt eingestellt, aber ich erhalte den Fehler (407) Proxyauthentifizierung erforderlich, da unser Proxy Benutzernamen und Passwörter verwendet. Ich habe versucht , die Notation einzustellen http_proxyund zu https_proxyverwenden username:password@proxy, aber ich habe immer noch den Fehler erhalten.
youR.Fate
1
Es gelang mir, get-pip.py hinter einem Proxy zu installieren - sogar mit einem SSH-Tunnel von einem Jump-Server in den Server. export https_proxy=https://localhost:18080 ; export http_proxy=http://localhost:18080 ; export ftp_proxy=$http_proxydannpython get-pip.py
sastorsl
10

In meinem Netzwerk hat das Einstellen von http_proxy bei mir nicht funktioniert. Die folgenden Punkte waren relevant.

1 Das Festlegen von http_proxy für Ihren Benutzer wird beim Ausführen von sudo nicht beibehalten. Gehen Sie dazu wie folgt vor:

sudo -E yourcommand

Ich habe meine Installation zum Laufen gebracht, indem ich zuerst den lokalen cntlm-Proxy installiert habe. Die Anweisungen hier sind kurz und bündig: http://www.leg.uct.ac.za/howtos/use-isa-proxies

Anstelle der Schülernummer würden Sie Ihren Domain-Benutzernamen eingeben

2 Um den lokalen cntlm-Proxy zu verwenden, führen Sie Folgendes aus:

pip install --proxy localhost:3128 pygments
Eugenevd
quelle
5

Sie können pip(oder jedes andere Paket) mit easy_installfast wie in der ersten Antwort beschrieben installieren . Sie benötigen jedoch auch einen HTTPSProxy. Die vollständige Befehlsfolge lautet:

set http_proxy=http://proxy.myproxy.com
set https_proxy=http://proxy.myproxy.com
easy_install pip

Möglicherweise möchten Sie dem Proxy auch einen Port hinzufügen, z http{s}_proxy=http://proxy.myproxy.com:8080

Adrian W.
quelle
1

Für die Installation von pip mit get-pip.py hinter einem Proxy habe ich die folgenden Schritte ausgeführt. Mein Server war sogar hinter einem Jump-Server.

Vom Jump-Server:

ssh -R 18080:proxy-server:8080 my-python-server

Auf dem "Python-Server"

export https_proxy=https://localhost:18080 ; export http_proxy=http://localhost:18080 ; export ftp_proxy=$http_proxy
python get-pip.py

Erfolg.

sastorsl
quelle
1
cd C:\Python34\Scripts

set HTTP_PROXY= DOMAIN\User_Name:Passw0rd123@PROXY_SERVER_NAME_OR_IP:PORT#

set HTTP_PROXY= DOMAIN\User_Name:Passw0rd123@PROXY_SERVER_NAME_OR_IP:PORT#

pip.exe install PackageName
Guru Raja Y.
quelle