Guida Python · 2 min di lettura

pip e conda dietro un proxy

Installare pacchetti Python da dietro un firewall si riduce a un'impostazione di proxy HTTP, esposta in tre modi in pip e due in conda. Ecco ciascuno, con il trucco del trusted-host per i proxy aziendali che ispezionano TLS.

Un proxy, diversi luoghi per impostarlo

pip e conda recuperano entrambi tramite HTTPS, quindi entrambi vogliono l'endpoint HTTP su porta 3128, autenticato con USER:PASS. pip espone l'impostazione in tre modi: il flag --proxy per un singolo comando, una riga proxy in pip.conf per la persistenza, e la variabile d'ambiente PIP_PROXY. pip onora anche le variabili standard http_proxy / https_proxy, quindi un'esportazione a livello di shell spesso risolve le cose senza toccare la configurazione di 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 e conda, ogni metodo

Flag, file di configurazione e variabile d'ambiente per pip; condarc per conda; trusted-host per proxy che ispezionano TLS. Sostituisci 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

Scegli il metodo giusto

Quanto deve essere permanente l'impostazione?

Un'installazione

Usa pip install --proxy http://USER:PASS@proxy.s4m.online:3128 . Nulla persiste — ideale su una macchina condivisa o temporanea.

Intera sessione

Esporta http_proxy e https_proxy. Sia pip che conda (e la maggior parte degli strumenti CLI) in quella shell utilizzano l'uscita finché non li disattivi.

Permanente per utente

Scrivi il proxy in pip.conf e ~/.condarc in modo che ogni installazione venga instradata automaticamente senza ripetere i flag.

Intercettazione TLS

Se un proxy aziendale ri-firma TLS, pip potrebbe rifiutare i certificati. Aggiungi --trusted-host per pypi.org e files.pythonhosted.org, o installa il CA del proxy.

Intercettazione TLS, autenticazione e onestà

Il fallimento più confuso di pip dietro un proxy non è un timeout ma un errore di certificato SSL. Questo accade quando un proxy aziendale intercetta e risigna HTTPS: pip vede un certificato non attendibile e rifiuta. La soluzione corretta è installare il CA radice del proxy nel tuo archivio di fiducia; la soluzione rapida è --trusted-host pypi.org --trusted-host files.pythonhosted.org. Il proxy di s4m non intercetta TLS, quindi non avrai questo problema con il nostro endpoint — inoltra solo il tuo traffico crittografato.

Il proxy HTTP di s4m è un endpoint autenticato di datacenter, a pagamento in base all'uso — un'uscita pulita per le immagini CI e le macchine degli sviluppatori che devono raggiungere PyPI e i canali conda da dietro una rete controllata. Non è un proxy residenziale e non è un mirror di pacchetti. Codifica i caratteri speciali nella tua password (@ diventa %40), e imposta no_proxy per gli indici di pacchetti interni. Un 407 significa credenziali errate — consulta la guida 407. Quando CI ha bisogno di un'uscita autorizzata, aggiungi un IP personale dedicato; valida qualsiasi endpoint con gli strumenti.

FAQ

Domande, risposte

Come imposto un proxy per un singolo pip install?

Passa --proxy http://USER:PASS@proxy.s4m.online:3128 al comando pip install. Niente persiste, il che è utile su macchine condivise; per un'impostazione permanente usa pip.conf o la variabile d'ambiente http_proxy.

Perché pip fallisce con un errore di certificato SSL dietro un proxy?

Un proxy aziendale sta probabilmente intercettando e risignando TLS, quindi pip vede un certificato non attendibile. Installa il CA radice del proxy, o usa --trusted-host pypi.org --trusted-host files.pythonhosted.org. s4m non intercetta TLS, quindi il nostro endpoint evita questo.

Come configuro conda per usare un proxy?

Esegui conda config --set proxy_servers.http e proxy_servers.https al tuo URL proxy; scrive in ~/.condarc. conda onora anche le variabili di ambiente http_proxy e https_proxy.

Pip e conda hanno bisogno dell'endpoint SOCKS5 o HTTP?

L'endpoint HTTP sulla porta 3128. Entrambi gli strumenti recuperano pacchetti tramite HTTPS attraverso un proxy HTTP CONNECT, quindi puntali a http://USER:PASS@proxy.s4m.online:3128.

Sblocca le tue installazioni Python

Instrada pip e conda attraverso l'endpoint HTTP autenticato su proxy.s4m.online:3128. Pagamento a consumo, senza intercettazione TLS, IP dedicato disponibile per le liste di autorizzazione CI.

Le persone hanno trovato questa pagina cercando

Frasi di ricerca reali a cui questa pagina risponde — i collegamenti aprono la pagina che le tratta in dettaglio.