Manchmal kann es nicht umgangen werden, dass man seine Verbindung ins Internet über einen Proxy herstellen muss, hier seien als Beispiel Firmennetzwerke genannt. Transparente Proxies stellen kein Problem dar, Proxys mit manueller Konfiguration dagegen doch eher. Da pip nicht die Standard-Proxyeinstellungen des Systems übernimmt, muss man der Paketverwaltung diese manuell mitteilen oder – noch besser – in den Systemeinstellungen hinterlegen.
Manuelle Angabe des Proxy
Hier kommt es jetzt drauf an, ob es sich um einen anonymen Proxy oder einen mit Authentifizierung handelt. Der pip-Aufruf lautet in jedem Fall
pip install <paketname> --proxy <proxyip:port>
Bei Proxy ohne Authentifizierung gibt man einfach die Adresse – wird kein Standardport genutzt zusätzlich den Port – an.
pip install whoosh --proxy http://mein.proxy.com:8080
Bei proxy mit Authentifizierung muss der Nutzername und das Passwort getrennt mit Doppelpunkt und angezeigt durch ein @ der Adresse nach dem Protokoll vorangestellt werden.
pip install whoosh --proxy http://benutzer:passwort@mein.proxy.com:8080
Proxy in den Systemeinstellungen hinterlegen
Wenn der Proxy nicht nur im Ausnahmefall genutzt wird sondern dauerhaft, dann macht es Sinn diesen in den Systemeinstellungen zu hinterlegen.
Linux
Unter Linux nutzt man den „export“-Befehl.
Je nachdem ob es sich um einen http- oder https-proxy handelt:
export http_proxy=http://benutzer:passwort@mein.proxy.com:8080
bzw.
export https_proxy=http://benutzer:passwort@mein.proxy.com:8080
Windows
Unter Windows trägt man die jeweilige Variable in den Systemvariablen ein (System -> Erweiterte Systemeinstellungen -> Umgebungsvariablen).
Nun sollte der Aufruf bei Verbindung über einen Proxy auch ohne die explizite Angabe via –proxy funktionieren.
Vorgehen bei SSL-Fehler
Gibt die Kommandozeile bei Verwendung eines https-Proxy mit MITM-Interception bei der Nutzung von pip eine SSL-Exception zurück, dann muss das Zertifikat von Hand angegeben werden. Dies geschieht durch das Anfügen von –cert an den pip-Befehl.
pip install whoosh --cert <Pfad-zum-Zertifikat>
Es muss der Pfad zu einer .pem-Datei angegeben werden, die das Zertifikat enthält. Zum Erstellen einer solchen gibt’s hier demnächst noch einen Quicktipp.
Der fertige Befehl sieht dann so aus:
pip install --cert ~/certs/thecert.pem
Alternativ kann man den Pfad auch in die pip-Configdatei schreiben, diese liegt unter Linux in ~/.pip/pip.conf und unter Windows in %APPDATA%\pip\pip.ini. Sollte die Datei nicht vorhanden sein, muss sie zuerst erstellt werden (Berechtigungen in Linux nicht vergessen!).
In dieser Datei legt man dann eine section [global] an und trägt dort mit cert = den Wert zur pem-Datei ein.
[global]
cert = /etc/cert/mycert.pem
Jetzt kann pip wie weiter oben beschrieben genutzt werden.