Guide Python · 2 min de lecture

pip et conda derrière un proxy

Installer des paquets Python derrière un pare-feu revient à un seul paramètre de proxy HTTP, exposé de trois manières dans pip et de deux dans conda. Voici chacun, avec le truc de trusted-host pour les proxies d'entreprise inspectant TLS.

Un proxy, plusieurs endroits pour le configurer

pip et conda récupèrent tous deux via HTTPS, donc tous deux veulent le s4m point de terminaison HTTP sur le port 3128, authentifié avec USER:PASS. pip expose le paramètre de trois manières : le --proxy pour une seule commande, une ligne proxy dans pip.conf pour la persistance, et la variable d'environnement PIP_PROXY. pip respecte également les variables standard http_proxy / https_proxy, donc un export au niveau du shell résout souvent les problèmes sans toucher à la configuration propre de pip.

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 et conda, chaque méthode

Drapeau, fichier de configuration et variable d'environnement pour pip ; condarc pour conda ; trusted-host pour les proxies inspectant TLS. Remplacez 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

Choisissez la bonne méthode

Quelle doit être la permanence du paramètre ?

Une installation

Utilisez pip install --proxy http://USER:PASS@proxy.s4m.online:3128 . Rien ne persiste — idéal sur une machine partagée ou temporaire.

Session entière

Exportez http_proxy et https_proxy. À la fois pip et conda (et la plupart des outils CLI) dans ce shell utilisent la sortie jusqu'à ce que vous les désactiviez.

Permanent par utilisateur

Écrivez le proxy dans pip.conf et ~/.condarc afin que chaque installation soit routée automatiquement sans répéter les drapeaux.

Interception TLS

Si un proxy d'entreprise re-signe TLS, pip peut rejeter les certificats. Ajoutez --trusted-host pour pypi.org et files.pythonhosted.org, ou installez le CA du proxy.

Interception TLS, authentification et honnêteté

L'échec de pip le plus déroutant derrière un proxy n'est pas un délai d'attente mais une erreur de certificat SSL. Cela se produit lorsqu'un proxy d'entreprise intercepte et re-signe HTTPS : pip voit un certificat non fiable et refuse. La solution appropriée est d'installer le CA racine du proxy dans votre magasin de confiance ; la solution rapide est --trusted-host pypi.org --trusted-host files.pythonhosted.org. Le proxy de s4m n'intercepte pas TLS, donc vous ne rencontrerez pas ce problème avec notre point de terminaison — il ne fait que transférer votre trafic chiffré.

Le proxy HTTP de s4m est un point de terminaison authentifié datacenter, facturé à l'utilisation — une sortie propre pour les images CI et les environnements de développement qui doivent atteindre PyPI et les canaux conda depuis un réseau contrôlé. Ce n'est pas un proxy résidentiel et ce n'est pas un miroir de paquets. Encodez les caractères spéciaux dans votre mot de passe (@ devient %40), et définissez no_proxy pour les index de paquets internes. Un 407 signifie de mauvaises informations d'identification — consultez le guide 407. Lorsque CI a besoin d'une sortie autorisée, ajoutez une IP personnelle dédiée ; validez tout point de terminaison avec les outils.

FAQ

Questions, réponses

Comment définir un proxy pour une seule installation pip ?

Passez --proxy http://USER:PASS@proxy.s4m.online:3128 à la commande pip install. Rien ne persiste, ce qui est pratique sur les machines partagées ; pour un paramètre permanent, utilisez pip.conf ou la variable d'environnement http_proxy.

Pourquoi pip échoue-t-il avec une erreur de certificat SSL derrière un proxy ?

Un proxy d'entreprise intercepte probablement et re-signe TLS, donc pip voit un certificat non fiable. Installez le CA racine du proxy, ou utilisez --trusted-host pypi.org --trusted-host files.pythonhosted.org. s4m n'intercepte pas TLS, donc notre point de terminaison évite cela.

Comment configurer conda pour utiliser un proxy ?

Exécutez conda config --set proxy_servers.http et proxy_servers.https avec l'URL de votre proxy ; cela écrit dans ~/.condarc. conda respecte également les variables d'environnement http_proxy et https_proxy.

Pip et conda ont-ils besoin du point de terminaison SOCKS5 ou HTTP ?

Le point de terminaison HTTP sur le port 3128. Les deux outils récupèrent des paquets via HTTPS à travers un proxy HTTP CONNECT, donc pointez-les vers http://USER:PASS@proxy.s4m.online:3128.

Débloquez vos installations Python

Faites passer pip et conda par le point de terminaison HTTP authentifié sur proxy.s4m.online:3128. Paiement à l'utilisation, pas d'interception TLS, IP dédiée disponible pour les listes blanches CI.

Les gens ont trouvé cette page en recherchant

Vraies phrases de recherche auxquelles cette page répond — les liens ouvrent la page qui les couvre en profondeur.