Прокси в Python requests
Как использовать HTTP- и SOCKS5-прокси в Python requests: примеры, таймауты и проверка IP.
Как заставить pip скачивать пакеты через прокси: одна команда, сохранённая настройка, переменные окружения, порядок их чтения, как отключить и как проверить, что всё работает.
Прокси меняет только сетевой путь между вашим компьютером и индексом пакетов. Откуда pip скачивает пакеты, определяет отдельная настройка --index-url, поэтому прокси и зеркало — разные вещи. Здесь речь о самой команде pip; прокси внутри Python-кода с библиотекой requests описан в отдельном руководстве.
Страница конфигурации pip задаёт порядок: сначала параметры командной строки, затем переменные окружения, затем файлы настроек. В файле раздел для одной команды, например [install], перекрывает такую же настройку в [global]. Поэтому --proxy в командной строке всегда сильнее прокси, сохранённого в файле. Для быстрой проверки используйте командную строку, для повседневной работы — файл.
В руководстве pip параметр --proxy описан в виде scheme://[user:passwd@]proxy.server:port. Для HTTP-порта Proxy302 схема — http. В руководстве pip запускают как python -m pip, чтобы использовался pip именно этого Python; в Windows так же работает py (py -m pip). Ничего не сохраняется: следующая команда снова пойдёт напрямую.
python -m pip install --proxy http://USERNAME:PASSWORD@HOST:PORT requestsЗамените HOST, PORT, USERNAME и PASSWORD значениями из «Мои активы».
Если в логине или пароле есть символы вроде @, : или /, запишите их в процентном кодировании: @ — %40, : — %3A, / — %2F. В документации pip такого правила нет, поэтому проверьте настройку способом ниже. Копировать значения из «Мои активы» надёжнее, чем набирать вручную. Пароль в команде остаётся в истории терминала, а пароль в файле настроек увидит каждый, кто может этот файл прочитать.
Проще всего команда pip config: pip config set global.proxy ... запишет настройку за вас, а pip config unset global.proxy удалит её. Без --user, --global и --site pip берёт файл виртуального окружения, если оно активно и файл существует, иначе пользовательский. Для ручной правки пользовательский файл — это $HOME/.config/pip/pip.conf в Linux, %APPDATA%\pip\pip.ini в Windows, а в macOS файл в $HOME/Library/Application Support/pip, если такая папка есть, иначе $HOME/.config/pip/pip.conf. Имена параметров в файле — это длинные имена без ведущих дефисов, так что --proxy пишется как proxy. pip config debug показывает, какие файлы существуют и какие значения в каждом, — это самый быстрый способ найти файл.
python -m pip config set global.proxy http://USERNAME:PASSWORD@HOST:PORT
python -m pip config listЗамените HOST, PORT, USERNAME и PASSWORD значениями из «Мои активы».
[global]
proxy = http://USERNAME:PASSWORD@HOST:PORTЗамените HOST, PORT, USERNAME и PASSWORD значениями из «Мои активы».
В руководстве перечислены стандартные переменные http_proxy, https_proxy и no_proxy. Страница конфигурации добавляет, что любой параметр можно задать как PIP_ плюс имя параметра заглавными, так что PIP_PROXY тоже работает. Если прокси уже задан в окружении, а pip должен его не учитывать, добавьте --no-proxy-env: тогда pip не читает настройки прокси из переменных окружения. В командной строке Windows вместо export пишут set.
export https_proxy=http://USERNAME:PASSWORD@HOST:PORT
export http_proxy=http://USERNAME:PASSWORD@HOST:PORT
export no_proxy=localhost,127.0.0.1
python -m pip install requestsЗамените HOST, PORT, USERNAME и PASSWORD значениями из «Мои активы».
--proxy меняет путь, --index-url меняет адрес, по которому обращается pip. Страница конфигурации приводит pip config set global.index-url как пример второго. Их можно использовать вместе, каждая задаётся отдельно. Если pip и без прокси достучится до нужного индекса, прокси не нужен вовсе.
В руководстве и справочнике pip приведён только вид scheme://[user:passwd@]proxy.server:port; какие схемы принимает pip и нужны ли для SOCKS дополнительные пакеты, там не сказано. Поэтому здесь только HTTP. При создании прокси в Proxy302 выберите протокол HTTP.
Выполните pip config unset global.proxy (имя раздела то же, что при настройке), затем pip config list, чтобы увидеть остаток. Если прокси всё ещё действует, сбросьте в этом терминале переменные http_proxy и https_proxy. Чтобы один раз запустить pip без прокси и ничего не менять, добавьте --no-proxy-env, и переменные будут проигнорированы. По документации, PIP_CONFIG_FILE со значением os.devnull отключает загрузку всех файлов настроек — это быстрый способ проверить pip без сохранённых настроек.
Выполните python -m pip config list: команда покажет действующую конфигурацию, а python -m pip config debug — какие файлы существуют и что в каждом.
Вторая команда ниже показывает IP, страну и сеть, которые видят сайты через тот же прокси.
Добавьте -v для подробного вывода (до трёх раз). Если со своим прокси загрузка проходит, а с намеренно неверным адресом падает, значит, pip его использует.
python -m pip config list
curl -x http://USERNAME:PASSWORD@HOST:PORT https://ipinfo.io/json
python -m pip download six --no-deps -d ./pip-test -vЗамените HOST, PORT, USERNAME и PASSWORD значениями из «Мои активы».
• 407 Proxy Authentication Required: прокси отклонил логин или пароль. Скопируйте их заново и проверьте процентное кодирование.
• ProxyError или таймаут соединения: неверные HOST или PORT либо срок аренды закончился. Проверьте тот же адрес командой curl выше. По справочнику pip, таймаут сокета по умолчанию 15 секунд, число попыток 5; менять их можно через --timeout и --retries.
• pip игнорирует настройку: выполните pip config list и поищите --proxy в командной строке, переменную PIP_PROXY или раздел [install], перекрывающий то, что вы правили.
• Пакет из внутреннего индекса компании не ставится: добавьте его хост в переменную no_proxy, чтобы pip обращался к нему напрямую.
Для любой команды здесь нужны только хост, порт, логин и пароль прокси Proxy302. pip принимает HTTP-адрес, поэтому при создании прокси выберите HTTP. Трафик ротационных резидентных прокси оплачивается за ГБ, страна выхода задаётся при создании прокси; HTTP — порт 2222, SOCKS5 — порт 3333 на proxy.proxy302.com. Статический ISP IP фиксирован на весь срок аренды и не ротируется — удобно, если инструмент должен всегда выходить с одного адреса. HTTP или SOCKS5 выбирают при покупке, один IP работает с одним протоколом.
Откройте страницу ротационных резидентных прокси, выберите линию, оставьте протокол HTTP и нажмите «Проверить цену и создать».
Откройте «Мои активы» (раздел консоли со всем, что вы купили) и скопируйте HOST, PORT, USERNAME и PASSWORD. На странице «Подключение» есть готовый пример с вашими данными.
Подставьте значения в команды выше.
Подтвердите выход запросом к https://ipinfo.io/json через прокси.
Из материкового Китая сначала запустите вспомогательную программу на странице «Подключение» и держите её открытой, пока работает прокси.
Бюджетная линия стоит $1,50 за ГБ, $1,35 за ГБ в пакете 100 ГБ и $1,20 за ГБ при 300 ГБ. Статический ISP IP — $0,50 за один день и $7,99 за 30 дней. Бесплатного пробного периода нет, минимальная покупка — 1 ГБ или один IP на один день. Набор доступных локаций меняется ежедневно.
Нет. Прокси меняет сетевой путь, --index-url — адрес, откуда pip скачивает. Они задаются отдельно и могут сочетаться.
По странице конфигурации pip: сначала командная строка, потом переменные окружения, затем файлы настроек.
Активируйте виртуальное окружение проекта и выполните pip config set --site global.proxy ...: --site ограничивает изменение файлом настроек текущего окружения.
В прочитанных нами страницах pip про SOCKS ничего не сказано. Используйте адрес HTTP-прокси.
Официальная документация · Проверено:
Read on 2 November 2026: the Proxy Server section says to use --proxy in the form scheme://[user:passwd@]proxy.server:port, or proxy in a configuration file, or the standard environment variables http_proxy, https_proxy and no_proxy, and --no-proxy-env to ignore proxies set through them; pip is run as python -m pip.
SOCKS is not mentioned. Configuration details are only pointers to the Configuration page.
Официальная документация · Проверено:
Read on 2 November 2026: file locations per system, loading order (global, user, site, then PIP_CONFIG_FILE); a command section such as [install] overrides [global]; precedence command line, then environment variables, then configuration files; file keys are long option names without the leading dashes; environment variables are PIP_ plus the upper-case name; PIP_CONFIG_FILE=os.devnull disables loading all configuration files.
Официальная документация · Проверено:
Read on 2 November 2026: --proxy "Specify a proxy in the form scheme://[user:passwd@]proxy.server:port"; --no-proxy-env "Do not read proxy configuration from environment variables"; --timeout (default 15 seconds); --retries (default 5); -v can be used up to 3 times.
The page does not list the accepted schemes and does not mention percent-encoding.
Официальная документация · Проверено:
Read on 2 November 2026: list shows the active configuration; debug shows which configuration files exist and the values in each; set and unset take command.option keys (example: pip config set global.index-url ...); --user, --global and --site pick the file; without them the virtual environment file is used if active and present, otherwise the user file.
Наблюдение за продуктом · Проверено:
Product facts file of the site (values checked against the console, the backend and the price table on 18-19 October 2026): products, prices in US$ (1 PTC = US$1), lease terms, protocols and ports, countries, quantity limits, no free trial.
Создайте аккаунт, пополните баланс и выберите ротируемый резидентный, статический ISP или дата-центр IP — настроить его в браузере можно за несколько минут.