Python-Leitfaden · 2 Min Lesezeit

pip und conda hinter einem Proxy

Die Installation von Python-Paketen hinter einer Firewall hängt von einer HTTP-Proxy-Einstellung ab, die auf drei Arten in pip und zwei in conda verfügbar ist. Hier sind sie, zusammen mit dem trusted-host-Trick für TLS-inspektierende Unternehmensproxies.

Ein Proxy, mehrere Orte, um ihn einzustellen

pip and conda both fetch over HTTPS, so both want the s4m HTTP endpoint on port 3128, authenticated with USER:PASS. pip exposes the setting three ways: the --proxy flag for a single command, a proxy line in pip.conf for persistence, and the PIP_PROXY environment variable. pip also honours the standard http_proxy / https_proxy variables, so a shell-level export often fixes things without touching pip's own config.

conda has its own config file. Set proxy_servers for http and https with conda config, which writes to ~/.condarc; conda also reads the environment variables. With s4m you point both tools at http://USER:PASS@proxy.s4m.online:3128. See the proxy page, the sibling npm/yarn guide, and the shared environment-variable guide for how these variables cross tools.

pip und conda, jede Methode

Flag, Konfigurationsdatei und Umgebungsvariable für pip; condarc für conda; trusted-host für TLS-inspektierende Proxys. Ersetzen Sie USER:PASS.

bash
# --- pip: single command ---
pip install --proxy http://USER:PASS@proxy.s4m.online:3128 requests

# --- pip: environment variables (whole session) ---
export https_proxy="http://USER:PASS@proxy.s4m.online:3128"
export http_proxy="http://USER:PASS@proxy.s4m.online:3128"
pip install requests

# --- pip: persistent config (~/.config/pip/pip.conf, or pip.ini on Windows) ---
cat > ~/.config/pip/pip.conf <<'CFG'
[global]
proxy = http://USER:PASS@proxy.s4m.online:3128
timeout = 30
CFG

# --- conda: writes to ~/.condarc ---
conda config --set proxy_servers.http  http://USER:PASS@proxy.s4m.online:3128
conda config --set proxy_servers.https http://USER:PASS@proxy.s4m.online:3128
conda install numpy

# --- TLS-inspecting corporate proxy? mark hosts trusted for pip ---
pip install --proxy http://USER:PASS@proxy.s4m.online:3128 \
  --trusted-host pypi.org --trusted-host files.pythonhosted.org requests

Wählen Sie die richtige Methode

Wie dauerhaft muss die Einstellung sein?

Eine Installation

Verwenden Sie pip install --proxy http://USER:PASS@proxy.s4m.online:3128 . Nichts bleibt bestehen – ideal auf einem gemeinsamen oder temporären Gerät.

Ganze Sitzung

Exportieren Sie http_proxy und https_proxy. Sowohl pip als auch conda (und die meisten CLI-Tools) in dieser Shell verwenden den Exit, bis Sie sie zurücksetzen.

Permanent pro Benutzer

Schreiben Sie den Proxy in pip.conf und ~/.condarc, damit jede Installation automatisch ohne wiederholte Flags geroutet wird.

TLS-Überwachung

Wenn ein Unternehmensproxy TLS neu signiert, kann pip Zertifikate ablehnen. Fügen Sie --trusted-host für pypi.org und files.pythonhosted.org hinzu oder installieren Sie das CA des Proxys.

TLS-Intercept, Authentifizierung und Ehrlichkeit

Der verwirrendste pip-Fehler hinter einem Proxy ist nicht ein Timeout, sondern ein SSL-Zertifikatfehler. Das passiert, wenn ein Unternehmensproxy HTTPS abfängt und neu signiert: pip sieht ein nicht vertrauenswürdiges Zertifikat und verweigert. Die richtige Lösung besteht darin, die Root-CA des Proxys in Ihren Vertrauensspeicher zu installieren; die schnelle Lösung ist --trusted-host pypi.org --trusted-host files.pythonhosted.org. Der eigene Proxy von s4m unterbricht TLS nicht, sodass Sie dies mit unserem Endpunkt nicht erleben werden — er leitet nur Ihren verschlüsselten Datenverkehr weiter.

Der HTTP-Proxy von s4m ist ein authentifizierter Rechenzentrum-Endpunkt, nach Verbrauch abgerechnet — ein sauberer Ausgang für CI-Images und Entwickler-Boxen, die von einem kontrollierten Netzwerk aus auf PyPI und conda-Kanäle zugreifen müssen. Es ist kein Wohnproxy und kein Paketspiegel. Kodieren Sie Sonderzeichen in Ihrem Passwort (@ wird zu %40), und setzen Sie no_proxy für interne Paketindizes. Ein 407 bedeutet schlechte Anmeldeinformationen — siehe den 407-Leitfaden. Wenn CI einen erlaubten Ausgang benötigt, fügen Sie eine dedizierte persönliche IP hinzu; validieren Sie jeden Endpunkt mit den Tools.

FAQ

Fragen, beantwortet

Wie setze ich einen Proxy für eine einzelne pip-Installation?

Geben Sie --proxy http://USER:PASS@proxy.s4m.online:3128 an den pip install-Befehl weiter. Nichts bleibt bestehen, was auf gemeinsam genutzten Maschinen praktisch ist; für eine dauerhafte Einstellung verwenden Sie pip.conf oder die http_proxy-Umgebungsvariable.

Warum schlägt pip mit einem SSL-Zertifikatfehler hinter einem Proxy fehl?

Ein Unternehmensproxy interceptiert wahrscheinlich und signiert TLS neu, sodass pip ein nicht vertrauenswürdiges Zertifikat sieht. Installieren Sie die Root-CA des Proxys oder verwenden Sie --trusted-host pypi.org --trusted-host files.pythonhosted.org. s4m interceptiert kein TLS, sodass unser Endpunkt dies vermeidet.

Wie konfiguriere ich conda, um einen Proxy zu verwenden?

Führen Sie conda config --set proxy_servers.http und proxy_servers.https zu Ihrer Proxy-URL aus; es wird in ~/.condarc geschrieben. Conda berücksichtigt auch die Umgebungsvariablen http_proxy und https_proxy.

Brauchen pip und conda den SOCKS5- oder HTTP-Endpunkt?

Der HTTP-Endpunkt auf Port 3128. Beide Tools holen Pakete über HTTPS durch einen HTTP CONNECT-Proxy, also richten Sie sie auf http://USER:PASS@proxy.s4m.online:3128..

Entsperren Sie Ihre Python-Installationen

Leiten Sie pip und conda über den authentifizierten HTTP-Endpunkt auf proxy.s4m.online:3128. Abrechnung nach Verbrauch, keine TLS-Überwachung, dedizierte IP für CI-Whitelist verfügbar.

Menschen fanden diese Seite durch die Suche nach

Echte Suchphrasen, auf die diese Seite antwortet — die verlinkten öffnen die Seite, die sie ausführlich behandelt.