Посібник з Python · 1 хв читання

pip і conda за проксі

Встановлення пакетів Python з-за фаєрвола зводиться до одного налаштування HTTP-проксі, доступного трьома способами в pip і двома в conda. Розбираємо кожен, разом із прийомом trusted-host для корпоративних проксі, що інспектують TLS.

Один проксі — кілька місць, де його задають

І pip, і conda ходять по HTTPS, тож обом потрібен HTTP-ендпоінт s4m на порту 3128 з автентифікацією USER:PASS. У pip це налаштування задається трьома способами: прапорцем --proxy для однієї команди, рядком proxy в pip.conf для сталого налаштування і змінною оточення PIP_PROXY. Ще pip поважає стандартні http_proxy / https_proxy, тож звичайний export в оболонці часто розв'язує питання, не чіпаючи конфіг самого pip.

У conda свій конфіг. Задайте proxy_servers для http і https через conda config — команда запише їх у ~/.condarc; змінні оточення conda теж читає. З s4m обидва інструменти дивляться на http://USER:[email protected]:3128. Дивіться сторінку проксі, сусідній гайд про npm/yarn і спільний гайд про змінні оточення — там про те, як ці змінні працюють одразу для багатьох інструментів.

pip і conda — усі способи

Прапорець, конфіг і змінна оточення для pip; condarc для conda; trusted-host для проксі, які розкривають TLS. Замініть USER:PASS.

bash
# --- pip: single command ---
pip install --proxy http://USER:[email protected]:3128 requests

# --- pip: environment variables (whole session) ---
export https_proxy="http://USER:[email protected]:3128"
export http_proxy="http://USER:[email protected]: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:[email protected]:3128
timeout = 30
CFG

# --- conda: writes to ~/.condarc ---
conda config --set proxy_servers.http  http://USER:[email protected]:3128
conda config --set proxy_servers.https http://USER:[email protected]:3128
conda install numpy

# --- TLS-inspecting corporate proxy? mark hosts trusted for pip ---
pip install --proxy http://USER:[email protected]:3128 \
  --trusted-host pypi.org --trusted-host files.pythonhosted.org requests

Виберіть потрібний спосіб

Наскільки надовго потрібне це налаштування?

Одна установка

Виконайте pip install --proxy http://USER:[email protected]:3128 . Нічого не зберігається — ідеально для спільної чи тимчасової машини.

Уся сесія

Зробіть export http_proxy і https_proxy. І pip, і conda (та більшість консольних інструментів) у цій оболонці ходитимуть через цей вихід, доки ви не приберете змінні.

Назавжди для користувача

Пропишіть проксі в pip.conf і ~/.condarc — тоді кожна установка піде через нього сама, без повторення прапорців.

Розкриття TLS

Якщо корпоративний проксі перепідписує TLS, pip може відкинути сертифікати. Додайте --trusted-host для pypi.org і files.pythonhosted.org або встановіть CA цього проксі.

Розкриття TLS, автентифікація і чесність

Найбільш спантеличливий збій pip за проксі — не таймаут, а помилка сертифіката SSL. Так буває, коли корпоративний проксі перехоплює й перепідписує HTTPS: pip бачить недовірений сертифікат і відмовляється працювати. Правильне рішення — покласти кореневий CA цього проксі у сховище довірених сертифікатів; швидке — --trusted-host pypi.org --trusted-host files.pythonhosted.org. Проксі s4m TLS не розкриває, тож із нашим ендпоінтом ви на це не натрапите — він лише пересилає ваш зашифрований трафік.

HTTP-проксі s4m — це дата-центровий ендпоінт з автентифікацією й оплатою за фактичний трафік: чистий вихід у мережу для CI-образів і машин розробників, яким треба дістатися PyPI та каналів conda з-за контрольованої мережі. Це не резидентний проксі й не дзеркало пакетів. Спецсимволи в паролі кодуйте (@ стає %40), а для внутрішніх індексів пакетів задайте no_proxy. 407 означає невірні облікові дані — дивіться гайд про 407. Коли CI потрібен один вихід для білого списку, додайте виділений персональний IP; будь-який ендпоінт перевіряйте інструментами.

FAQ

Відповіді на питання

Як задати проксі для однієї команди pip install?

Передайте команді pip install прапорець --proxy http://USER:[email protected]:3128. Нічого не зберігається — зручно на спільних машинах; для сталого налаштування використовуйте pip.conf або змінну http_proxy.

Чому pip падає з помилкою сертифіката SSL за проксі?

Найімовірніше, корпоративний проксі перехоплює й перепідписує TLS, і pip бачить недовірений сертифікат. Встановіть кореневий CA цього проксі або скористайтеся --trusted-host pypi.org --trusted-host files.pythonhosted.org. s4m TLS не розкриває, тож із нашим ендпоінтом такого не буде.

Як налаштувати conda на роботу через проксі?

Виконайте conda config --set proxy_servers.http і proxy_servers.https зі своїм URL проксі — команда запише їх у ~/.condarc. Ще conda поважає змінні оточення http_proxy і https_proxy.

Що потрібно pip і conda — SOCKS5 чи HTTP-ендпоінт?

HTTP-ендпоінт на порту 3128. Обидва інструменти тягнуть пакети по HTTPS через проксі з HTTP CONNECT, тож указуйте їм http://USER:[email protected]:3128.

Розблокуйте свої установки Python

Пустіть pip і conda через HTTP-ендпоінт з автентифікацією на proxy.s4m.online:3128. Оплата за фактичний трафік, без розкриття TLS, є виділений IP для білих списків у CI.

Цю сторінку знаходять за запитами

Реальні пошукові фрази, на які відповідає ця сторінка — за посиланнями відкриються матеріали, що розкривають тему глибше.