Przewodnik po Pythonie · 2 min czytania

pip i conda za proxy

Instalowanie pakietów Pythona z za firewallem sprowadza się do jednego ustawienia proxy HTTP, ujawnionego na trzy sposoby w pip i dwa w conda. Oto każde z nich, z trikiem trusted-host dla korporacyjnych proxy inspekcjonujących TLS.

Jeden proxy, kilka miejsc do jego ustawienia

pip i conda oba pobierają przez HTTPS, więc oba potrzebują s4m punktu końcowego HTTP na porcie 3128, uwierzytelnionego za pomocą USER:PASS. pip udostępnia ustawienie na trzy sposoby: flaga --proxy dla pojedynczego polecenia, linia proxy w pip.conf dla trwałości oraz zmienna środowiskowa PIP_PROXY. pip również honoruje standardowe zmienne http_proxy / https_proxy, więc eksport na poziomie powłoki często naprawia problemy bez dotykania własnej konfiguracji 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 i conda, każda metoda

Flaga, plik konfiguracyjny i zmienna środowiskowa dla pip; condarc dla conda; trusted-host dla proxy inspektujących TLS. Zastąp 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

Wybierz odpowiednią metodę

Jak trwałe musi być to ustawienie?

Jedna instalacja

Użyj pip install --proxy http://USER:PASS@proxy.s4m.online:3128 . Nic nie pozostaje — idealne na współdzielonej lub tymczasowej maszynie.

Cała sesja

Eksportuj http_proxy i https_proxy. Zarówno pip, jak i conda (i większość narzędzi CLI) w tym shellu używają wyjścia, dopóki ich nie usuniesz.

Trwałe na użytkownika

Zapisz proxy w pip.conf i ~/.condarc, aby każda instalacja była automatycznie kierowana bez powtarzania flag.

Przechwytywanie TLS

Jeśli korporacyjne proxy ponownie podpisuje TLS, pip może odrzucić certyfikaty. Dodaj --trusted-host dla pypi.org i files.pythonhosted.org, lub zainstaluj CA proxy.

Przechwytywanie TLS, uwierzytelnianie i uczciwość

Najbardziej myląca awaria pip za proxy to nie przekroczenie czasu, ale błąd certyfikatu SSL. Dzieje się tak, gdy korporacyjne proxy przechwytuje i ponownie podpisuje HTTPS: pip widzi nieufny certyfikat i odmawia. Odpowiednie rozwiązanie to zainstalowanie głównego CA proxy w swoim magazynie zaufania; szybkim rozwiązaniem jest --trusted-host pypi.org --trusted-host files.pythonhosted.org. Proxy s4m nie przechwytuje TLS, więc nie napotkasz tego z naszym punktem końcowym — tylko przekazuje twój zaszyfrowany ruch.

Proxy HTTP s4m to uwierzytelniony punkt końcowy centrum danych, rozliczany na zasadzie pay-as-you-go — czysty egress dla obrazów CI i środowisk deweloperskich, które muszą dotrzeć do PyPI i kanałów conda z za kontrolowanej sieci. To nie jest proxy mieszkalne ani lustro pakietów. Zakoduj znaki specjalne w swoim haśle (@ staje się %40), i ustaw no_proxy dla wewnętrznych indeksów pakietów. Kod 407 oznacza złe dane uwierzytelniające — zobacz przewodnik 407. Gdy CI potrzebuje jednego dozwolonego egressu, dodaj dedykowany osobisty adres IP; zweryfikuj każdy punkt końcowy za pomocą narzędzi.

FAQ

Pytania, odpowiedzi

Jak ustawić proxy dla pojedynczej instalacji pip?

Przekaż --proxy http://USER:PASS@proxy.s4m.online:3128 do polecenia pip install. Nic nie jest zachowywane, co jest przydatne na współdzielonych maszynach; dla trwałego ustawienia użyj pip.conf lub zmiennej środowiskowej http_proxy.

Dlaczego pip nie działa z błędem certyfikatu SSL za proxy?

Proxy korporacyjne prawdopodobnie przechwytuje i ponownie podpisuje TLS, więc pip widzi niezaufany certyfikat. Zainstaluj root CA proxy lub użyj --trusted-host pypi.org --trusted-host files.pythonhosted.org. s4m nie przechwytuje TLS, więc nasz punkt końcowy tego unika.

Jak skonfigurować conda, aby używało proxy?

Uruchom conda config --set proxy_servers.http i proxy_servers.https z adresem URL swojego proxy; zapisuje to w ~/.condarc. conda również honoruje zmienne środowiskowe http_proxy i https_proxy.

Czy pip i conda potrzebują punktu końcowego SOCKS5 lub HTTP?

Punkt końcowy HTTP na porcie 3128. Oba narzędzia pobierają pakiety przez HTTPS przez proxy HTTP CONNECT, więc skieruj je na http://USER:PASS@proxy.s4m.online:3128..

Odblokuj swoje instalacje Pythona

Przekieruj pip i conda przez uwierzytelniony punkt końcowy HTTP na proxy.s4m.online:3128. Płatność za użycie, brak przechwytywania TLS, dedykowany IP dostępny dla list dozwolonych CI.

Ludzie znaleźli tę stronę, szukając

Rzeczywiste frazy wyszukiwania, na które ta strona odpowiada — powiązane otwierają stronę, która je szczegółowo omawia.