Вход Регистрация

Прокси

Как использовать pip с прокси: руководство для разработчиков

Пошаговая инструкция по настройке pip с прокси сервером в окружении Python: конфигурация, авторизация, переменные окружения и устранение частых ошибок.

Команда Froxy 12 июн 2025 8 мин
Как использовать pip с прокси: руководство для разработчиков

Существуют разные ситуации применения прокси-серверов, но чаще всего прокси требуются в IT-проектах, особенно при написании своих парсеров и при создании комплексных web-приложений или сервисов. В данном материале мы расскажем о том, как использовать прокси с pip. Можно ли настроить прокси для конкретных коннектов или на уровне глобальных переменных среды и как это сделать (с предметными инструкциями). А ещё приведём список наиболее распространённых ошибок и методы диагностики проблем работы pip через прокси.

Введение в pip и использование прокси-сервера

Если максимально кратко, то pip — это штатный менеджер пакетов в среде программирования Python. У него есть альтернативы: conda (для окружения Anaconda), poetry, pipenv (объединяет виртуальное окружение virtualenv и менеджер pip), buildout (ранее был популярен для работы с масштабными проектами на Python).

Технически pip решает следующие задачи:

  • Скачивает и устанавливает новые пакеты (в норме — из открытого репозитория PyPI/ Python Package Index, официальный сайт).
  • Обновляет уже установленные пакеты (только по команде пользователя).
  • Следит за имеющимися зависимостями (может автоматически доустанавливать дополнительные рекомендуемые пакеты, связанные с основным).
  • Обеспечивает удобное удаление ненужных пакетов и зависимостей.

Прокси-серверы — это узлы-посредники. Они нужны для разных задач:

  • Для перенаправления трафика и балансировки нагрузки.
  • Для обхода сбойных узлов и для выстраивания более эффективных маршрутов в Сети.
  • Для распараллеливания запросов и организации тестирования (безопасности, производительности и т.п.).
  • Для решения вспомогательных задач по работе с контентом — сжатие данных, очистка от ненужного содержимого, организация внутренних корпоративных сетей и хранилищ, и т.п.

Если максимально кратко, то прокси — это средство для организации альтернативных маршрутов в Интернете и управления потоками данных.

Прокси бывают разных типов и видов: прозрачные и анонимные, с ротацией (backconnect-схема) и без, HTTP/HTTPS, SOCKS, SSH и т.п. (по поддерживаемым протоколам), резидентные, мобильные и серверные (по типу выходных адресов), кеширующие, со сжатием и т.п. У каждого типа прокси своя сфера применения и особенности подключения.

Например, для работы в паре с парсерами логичнее всего использовать ротируемые HTTP или SOCKS-прокси на базе мобильных или домашних IP (резидентные прокси). Для корпоративных задач по управлению трафиком могут подойти серверные прокси.

Что такое pip и зачем его использовать с прокси-сервером?

Что такое pip

Осталось объяснить как связаны между собой менеджер пакетов Python и прокси. Выше мы упомянули, что pip скачивает библиотеки и код из репозитория PyPI. Но такой подход может быть неудобен в ряде случаев, например, когда:

  • Компания использует собственное проверенное хранилище кода. Скрипты здесь могут быть переделаны под себя или вообще написаны с нуля (без общего доступа для всего остального мира).
  • Разработка ведётся в локации, из которой официальное хранилище кода недоступно. Например, доступ к сайту PyPI блокируется корпоративными политиками или системами защиты (антивирусы, брандмауэры и т.п.).

И чтобы перенаправить трафик в нужную точку, нужны прокси. К слову, прокси-сервер здесь может выполнять ряд дополнительных задач, например, кеширование статического контента (в том числе файлов с Python-скриптами), проверка на вирусы и опасный контент, сжатие (для экономии трафика и ускорения скачивания).

Итого, обходится сразу несколько проблем: повышается безопасность, облегчается контроль трафика и запросов, открывается доступ к управлению содержимым.

Типичные сценарии, в которых требуется работа pip через прокси

  • Организация централизованного хранилища кода и библиотек в корпоративной среде. Прокси здесь будут выполнять роль единой точки входа в это хранилище (в обход стандартного общедоступного хранилища PyPI).
  • Организация фильтрации небезопасного контента и скриптов. Будет полезным, например, при использовании в школах, ВУЗах и других учебных учреждениях. Прокси сможет фильтровать вирусы и иной вредоносный код на входе.
  • Обход региональных или локальных блокировок, которые ограничивают прямой доступ к хранилищу PyPI. Например, когда в корпоративной сети блокируются определённые сайты или протоколы.
  • Журналирование доступа к PyPI для текущего проекта — для лучшего контроля и понимания узких мест.

Как использовать pip с прокси-сервером (краткое руководство)

Как использовать pip с прокси

Менеджер пакетов pip может подключаться к прокси разными способами: посредством специального синтаксиса команд, с задействованием переменных окружения или виртуальных сред, а также с использованием конфигурационных файлов.

Ниже рассмотрим каждый из вариантов подключения прокси к pip в подробностях.

Синтаксис установки прокси для pip одной строкой

Стандартный синтаксис pip выглядит следующим образом:

pip install <название пакета>

Если вы не добавляли pip в переменные окружения, то нужно обратиться напрямую к исполняемому файлу. Например, в Windows это будет выглядеть примерно так:

cd "C:\Program Files\Python313\Scripts\"./pip.exe install <название пакета>

Путь установки pip может отличаться. В нашем случае установка осуществлялась в общий для всех каталог «Program Files», а версия Python — 3.13.

Если вызов Python добавлен в переменные среды, а pip нет, то команда может выглядеть так:

python -m pip install <название пакета>

Вместо команды «install» могут быть и другие: download (только для загрузки указанного пакета), uninstall (для удаление пакетов), freeze (для «заморозки» пакетов), list (для получения списков уже установленных пакетов), search (для поиска пакетов) и т.д.

Обратите внимание: для апдейта нет отдельной команды, но есть флаг параметра «install»:

pip install --upgrade <название пакета>

Прокси тоже определяются на уровне специального флага к команде pip install (--proxy). Полная команда будет выглядеть так:

pip install --proxy http://123.455.234.345:3088 <имя пакета>

Данные коннекта нужно заменить на свои (IP-адрес и номер порта).

Если обращение к прокси осуществляется на основе домена, то строка подключения pip к прокси будет выглядеть так:

pip install --proxy http://proxy-url.com:3088 <имя пакета>

Как использовать pip с прокси-сервером, требующим аутентификации

Многие ротируемые прокси требуют обязательной авторизации за защиты подключений. Подключение прокси к pip в этом случае будет выглядеть так:

pip install --proxy http://proxy_user:PASSWRD@123.455.234.345:3088 <имя пакета>

Можно заметить, что конструкция поменялась не сильно. Добавились только параметры аутентификации.

Естественно, вместо указанных нами значений нужно подставить актуальные данные (те, что вам предоставил ваш прокси-сервис).

Резидентные прокси

Лучшие прокси-серверы для доступа к ценным данным со всего мира.

Начать с триала $1.99, 100Mb

Постоянная настройка прокси-сервера в pip

Если вы не хотите каждый раз прописывать параметры прокси на уровне синтаксиса pip, можно попробовать указать условия подключения в конфигурационных файлах скрипта или добавить их в переменные среды.

Сейчас расскажем о каждом подходе по-отдельности.

Настройка pip.conf (Linux/macOS) или pip.ini (Windows)

Утилита pip может иметь свои конфигурационные файлы. И они не всегда хранятся централизованно. Чтобы не писать свои конфиги вслепую, лучше всего узнать у pip, где конкретно он ищет информацию.

Для этого введите команду:

pip config -v list

В Windows файлы будут подхватываться из каталогов:

  • Глобально (вариант 'global') — 'C:\ProgramData\pip\pip.ini'
  • Локально (для конкретного пользователя) — 'C:\Users\<ВАШ_ЛОГИН>\pip\pip.ini'
  • Ещё локальный вариант (тоже для конкретного пользователя) — 'C:\Users\<ВАШ_ЛОГИН>\AppData\Roaming\pip\pip.ini'
  • Для web-парсинга (вариант 'site') — 'C:\Program Files\Python313\pip.ini'

Конкретно в вашем случае путь установки Python может отличаться, поэтому путь «C:\Program Files\Python313» будет другим.

Открывайте нужный вам файл и добавляйте в него строки:

[global]proxy = http://proxy_user:PASSWRD@123.455.234.345:3088

(с вашими актуальными данными подключения)

Если файла не существует, просто создайте его: правой кнопкой мыши в папке, пункт «Создать», в выпадающем меню «Текстовый документ». После создания переименуйте его и смените расширение. Должно получиться «pip.ini».

В Linux или в MacOS файлы конфигурации будут иметь расширение .conf, а располагаться будут в других каталогах.

Для Linux-дистрибутивов (в большинстве случаев):

  • Глобальный уровень — ‘/etc/pip.conf’. Если в ОС используется переменная среды XDG_CONFIG_DIRS, то актуальная версия каталога с конфигами pip будет определяться настройками переменной (например, «/etc/xdg/pip/pip.conf»).
  • Уровень пользователя — ‘~/.config/pip/pip.conf’ (обратите внимание, с точки начинаются названия скрытых папок и файлов, а «~» — это каталог пользователя).
  • Уровень сайтов — ‘$VIRTUAL_ENV/pip.conf’ (то есть прописывается на уровне виртуального окружения).

Для MacOS:

  • Глобальный уровень — ‘/Library/Application Support/pip/pip.conf’.
  • Уровень пользователя — в новых версиях ОС ‘$HOME/Library/Application Support/pip/pip.conf’, но поддерживается и подгрузка устаревшего формата, по аналогии с Linux ‘$HOME/.config/pip/pip.conf’.
  • Уровень сайтов — ‘$VIRTUAL_ENV/pip.conf’ (конфиг-файл виртуального окружения).

Наибольший приоритет отдаётся записям, которые определяются на самом последнем уровне:

  • Первый — глобальный.
  • Второй — уровень пользователя (переопределяет повторяющиеся конфиги глобального).
  • Третий — уровень окружения (переопределяет повторяющиеся конфиги пользователя).
  • Последний — командная строка (переопределяет переменные виртуального окружения).

Настройка прокси-сервера pip с помощью переменных среды

В Windows переменные можно задать через специальный интерфейс. Вбейте в поиске системы «Environment variables» или откройте свойства системы и кликните на кнопке «Переменные среды».

Создайте новые переменные:

  • Имя: HTTP_PROXY
  • Значение: http://proxy_user:PASSWRD@123.455.234.345:3088

Если прокси без авторизации, то формат записи будет примерно таким:

http://123.455.234.345:3088 или http://proxy-domain.com:3008

Номер порта, адрес, логин и пароль нужно указать актуальные (у нас несуществующие значения, они используются только для примера).

  • Имя: HTTPS_PROXY
  • Значение: https://proxy_user:PASSWRD@123.455.234.345:3088

Обратите внимание: HTTP_PROXY и HTTPS_PROXY — это две разные переменные, и определять их нужно обе.

Через переменные среды вы создаёте общие прокси для Python (для всей среды выполнения скриптов).

Вместо графического режима можно задействовать командную строку.

Для Windows

set HTTP_PROXY=http://proxy_user:PASSWRD@123.455.234.345:3088set HTTPS_PROXY=https://proxy_user:PASSWRD@123.455.234.345:3088

Для Linux

export http_proxy=http://proxy_user:PASSWRD@123.455.234.345:3088export https_proxy=https://proxy_user:PASSWRD@123.455.234.345:3088

Если вы хотите задать список исключений, то сайты, для которых не нужно включать прокси, следует перечислить в переменной no_proxy. Например:

set NO_PROXY=example.com,site123.org,127.0.0.1

Удаление происходит командой unset (в Linux):

unset HTTP_PROXY

В Windows проще установить «пустой» прокси:

set HTTP_PROXY=

Или можно выполнить общий сброс прокси с правами администратора:

netsh winhttp reset proxy

Pip и прокси через команду «config»

Pip и прокси через команду «config»

Относительно недавно Python представил CLI-интерфейс для управления настройками менеджера PIP.

Вы можете определять глобальные и пользовательские настройки, а также настройки виртуального окружения напрямую из командной строки. Синтаксис не привязывается к платформе.

Вот будет выглядеть команда для установки прокси на глобальном уровне:

pip config set global.proxy http://proxy.host:1234

или

pip config set global.proxy http://login:pass@proxy.host:1234

(если используется авторизация с логином и паролем)

Вот так определяются настройки на уровне пользователя:

pip config set user.proxy http://login:pass@proxy.host:1234

А вот так для уровня «site» (переменные окружения):

pip config set site.proxy http://login:pass@proxy.host:1234

Pip и прокси в виртуальных средах и инструментах

Переменную среды можно установить или изменить внутри Python-скриптов следующим образом:

PIP_PROXY = http://login:pass@proxy.host:1234

Это будет полный аналог команды «pip --proxy http://login:pass@proxy.host:1234».

Не забудьте указать актуальные значения для подключения к своему прокси.

Если вам нужно установить пакет через pip с прокси только для конкретного виртуального окружения, можно использовать такой синтаксис:

C:\Users\<YOUR_NAME>\myvenv\Scripts\pip install --proxy=http://proxy-user:passwd@proxy_address:1234 virtualenv

То есть вам нужно обратиться напрямую к установщику pip, который лежит в созданном вами виртуальном окружении.

Если прямой путь не срабатывает, сначала перейдите в нужный каталог окружения:

cd “C:\Users\<YOUR_NAME>\myvenv\Scripts\pip”./pip.exe install --proxy=http://proxy-user:passwd@proxy_address:1234 <имя пакета>

Плюс всегда можно настроить общие переменные для текущего виртуального окружения. Это делается через переменные HTTP_PROXY и HTTPS_PROXY (разбирали их выше):

  • В Linux — «export http_proxy=http://proxyserver:port» и «export https_proxy=https://proxyserver:port».
  • В Windows — «set http_proxy=http://proxyserver:port» и «set https_proxy=https://proxyserver:port».

Устранение неполадок pip прокси

troubleshooting

Одни из самых сложных ошибок настройки: прокси прописаны в разных конфигах, для разных пользователей и на разном уровне доступа (глобально, для переменных сред и т.п.). Найти что и где задано бывает достаточно трудно.

В крупных корпоративных сетях вообще может задействоваться механизм централизованной настройки прокси с NTLM-аутентификацией (он же используется в прокси-серверах NTLMAPS и CNTLM).

Неправильные конфиги легко лечатся прямым прописанием параметров прокси при вызове pip из командной строки. Они имеют наивысший приоритет.

Но мало определить только адрес и порт прокси. Ошибки могут возникать и из-за других опций конфигурации.

Распространенные ошибки: таймауты, SSL, сбои аутентификации

Репозиторий PyPI недоступен

Редко, но вполне реалистично. Чтобы убедиться в его работоспособности, подключитесь к нему напрямую (без прокси) или через другой (заведомо работоспособный) прокси.

Коннект pip через прокси выдаёт ошибку таймаута

Как минимум нужно проверить, что прокси доступен и работает (+вы могли ошибиться при вводе логина/пароля). Это можно сделать с помощью утилит curl или wget из консоли (рассмотрим ниже).

А ещё следует переопределить опцию стандартного таймаута (на случай, если он уже установлен в каком-то из конфигов слишком коротким, системная предустановка — 15 секунд):

pip install --proxy http://123.455.234.345:3088 --timeout=60 <имя пакета>

В нашем примере мы установили тайм-аут в 60 секунд.

Ошибка авторизации (407 ошибка)

Если прокси доступен, но ошибку выдаёт только при обращении из вашего python-скрипта, то с большой вероятностью проблема кроется в наличии спецсимволов в имени пользователя или в пароле.

Спецсимволы нужно перекодировать. Например:

  • @ — %40
  • : — %3A
  • # — %23

Ошибка верификации (небезопасные SSL-сертификаты)

Самый правильный подход — добавить сертификаты безопасности (через опцию --cert=/путь/до/сертификата/cert.pem). Ошибка обычно возникает, если вы обращаетесь к стороннему индексу пакетов, а при авторизации задействуется дефолтный SSL (для pypi.org). Естественно, сертификат будет отображаться как невалидный. Чтобы убрать ошибку, вам нужно скачать и установить SSL для выбранного индекса пакетов.

Но если у вас нет SSL в наличии, то и добавить ничего вы не сможете.

«Костыльное» решение — объявить адрес хоста, который приводит к появлению ошибки, доверенным. За это отвечает флаг --trusted-host:

pip install --trusted-host your-index.org --proxy http://123.455.234.345:3088 <имя пакета>

Диагностика с помощью подробного вывода и curl/wget

Самый простой вариант — обратиться к сайту через утилиту curl и вывести все предупреждения и информацию в консоль:

curl -I https://pypi.org --proxy http://proxy-user:passwd@proxyserver.com:3038

В Windows утилиту, возможно, придётся скачать и установить вручную (официальный сайт curl). Выполнение скрипта будет немного сложнее. Сначала нужно распаковать программу в каталог, а затем переключиться в него:

cd "C:\путь\до\curl\bin\"curl.exe -I https://pypi.org --proxy http://proxy-user:passwd@proxyserver.com:3038

WGET нет в Windows, поэтому его придётся качать и устанавливать отдельно.

Синтаксис для обращения к сайтам через прокси выглядит следующим образом:

wget https://pypi.org -e use_proxy=yes -e http_proxy=proxy-user:passwd@proxyserver.com:3038

Либо прокси нужно определять на уровне переменных среды (смотри выше) и обращаться к сайтам без дополнительных опций:

wget https://pypi.org

Стандартная отладка менеджера пакетов pip настраивается через параметр -v. Чем больше «v», тем выше детализация лога:

  • Подробный вывод — «pip install -v--proxy http://123.455.234.345:3088 <имя пакета>»
  • Ещё подробнее — «pip install -vv--proxy http://123.455.234.345:3088 <имя пакета>»
  • Максимум деталей — «pip install -vvv--proxy http://123.455.234.345:3088 <имя пакета>»
Мобильные прокси

Мобильные IP-адреса обеспечивают максимальную гибкость и бесперебойную связь.

Выбрать прокси $1.99, 100Mb

Дополнительные советы по pip прокси

Параметры подключения к прокси, в особенности логин и пароль, вполне можно отнести к конфиденциальной информации. В связи с этим, хранение данных о pip прокси вместе с кодом скриптов нельзя назвать безопасным. Одно дело, когда код пишет и обслуживает всего один разработчик (например, если это фан-проект или индивидуальная разработка для собственных нужд), а другое — большой коллектив и разрозненные скрипты.

В связи с этим мы рекомендуем определять данные подключения к прокси на уровне переменных среды или на уровне конфигов (ini/config файлы).

Но тогда возникает другая проблема: чем больше прокси у вас будет использоваться в проекте, тем сложнее ими будет управлять.

Тут есть элегантное, но платное решение — прокси-сервис с ротируемыми адресами. Вам достаточно создать отдельный прокси-фильтр (или порт), выдать данные для подключения к нему сотруднику, и в дальнейшем управлять параметрами выбора выходных адресов через удобный личный кабинет. Ненужные фильтры или порты легко отключаются и удаляются, например, если сотрудник уволен или прокси для данного сервиса больше не требуется.

Выводы и рекомендации

pip proxy

Pip — мощное встроенное решение для управления Python-библиотеками. Этот менеджер пакетов из коробки умеет работать через прокси, что добавляет ему гибкости и функциональности.

Подключение pip к прокси можно выполнить с помощью специального синтаксиса команд в консоли, а также с задействованием переменных среды и конфигурационных файлов. Специально для pip предоставляется консольная утилита настройки — pip config.

Но мало настроить pip, нужны ещё качественные прокси. Вы можете подобрать надёжные ротируемые резидентные, мобильные и серверные прокси у нас. Froxy — это 10+ млн. IP из 200+ стран с таргетингом до города и оператора связи. Расчёт на основе потребляемого трафика.

Получайте уведомления о новых функциях и обновлениях Froxy

Узнайте первыми о новых функциях Froxy, чтобы оставаться в курсе событий происходящих на рынке цифровых технологий и получать новости о новых функциях Froxy.

Статьи по Теме

Веб-скрапинг с помощью Puppeteer: Практический подход

Парсинг

Веб-скрапинг с помощью Puppeteer: Практический подход

Узнайте, как использовать Puppeteer для веб-скрапинга с помощью нашего практического гайда. Изучите реальные примеры и советы по эффективному...

Команда Froxy 17 апр 2025 9 мин
Как обойти блокировку IP-адреса в 2025 году

Прокси

Как обойти блокировку IP-адреса в 2025 году

Как обойти блокировку IP и легально восстановить доступ через VPN, прокси, Tor. Полезные советы по предотвращению будущих ограничений, санкций и...

Команда Froxy 9 апр 2025 8 мин