К содержимому

Прокси для pip: --proxy, pip.conf и переменные окружения

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

Что меняет прокси и что нет

Прокси меняет только сетевой путь между вашим компьютером и индексом пакетов. Откуда pip скачивает пакеты, определяет отдельная настройка --index-url, поэтому прокси и зеркало — разные вещи. Здесь речь о самой команде pip; прокси внутри Python-кода с библиотекой requests описан в отдельном руководстве.

Три способа и какой главнее

Страница конфигурации pip задаёт порядок: сначала параметры командной строки, затем переменные окружения, затем файлы настроек. В файле раздел для одной команды, например [install], перекрывает такую же настройку в [global]. Поэтому --proxy в командной строке всегда сильнее прокси, сохранённого в файле. Для быстрой проверки используйте командную строку, для повседневной работы — файл.

Одна команда с --proxy

В руководстве pip параметр --proxy описан в виде scheme://[user:passwd@]proxy.server:port. Для HTTP-порта Proxy302 схема — http. В руководстве pip запускают как python -m pip, чтобы использовался pip именно этого Python; в Windows так же работает py (py -m pip). Ничего не сохраняется: следующая команда снова пойдёт напрямую.

Одна команда с --proxy: пример

python -m pip install --proxy http://USERNAME:PASSWORD@HOST:PORT requests

Замените HOST, PORT, USERNAME и PASSWORD значениями из «Мои активы».

Логин и пароль

Если в логине или пароле есть символы вроде @, : или /, запишите их в процентном кодировании: @ — %40, : — %3A, / — %2F. В документации pip такого правила нет, поэтому проверьте настройку способом ниже. Копировать значения из «Мои активы» надёжнее, чем набирать вручную. Пароль в команде остаётся в истории терминала, а пароль в файле настроек увидит каждый, кто может этот файл прочитать.

Сохранить в файле настроек 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 показывает, какие файлы существуют и какие значения в каждом, — это самый быстрый способ найти файл.

Сохранить через pip config: пример

python -m pip config set global.proxy http://USERNAME:PASSWORD@HOST:PORT
python -m pip config list

Замените HOST, PORT, USERNAME и PASSWORD значениями из «Мои активы».

Та же настройка в pip.conf: пример

[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 и без прокси достучится до нужного индекса, прокси не нужен вовсе.

SOCKS5

В руководстве и справочнике 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 без сохранённых настроек.

Как проверить, что pip использует прокси

  1. Посмотрите, что задано

    Выполните python -m pip config list: команда покажет действующую конфигурацию, а python -m pip config debug — какие файлы существуют и что в каждом.

  2. Проверьте адрес выхода через curl

    Вторая команда ниже показывает IP, страну и сеть, которые видят сайты через тот же прокси.

  3. Скачайте небольшой пакет с подробным выводом

    Добавьте -v для подробного вывода (до трёх раз). Если со своим прокси загрузка проходит, а с намеренно неверным адресом падает, значит, pip его использует.

Проверка, что 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

Для любой команды здесь нужны только хост, порт, логин и пароль прокси Proxy302. pip принимает HTTP-адрес, поэтому при создании прокси выберите HTTP. Трафик ротационных резидентных прокси оплачивается за ГБ, страна выхода задаётся при создании прокси; HTTP — порт 2222, SOCKS5 — порт 3333 на proxy.proxy302.com. Статический ISP IP фиксирован на весь срок аренды и не ротируется — удобно, если инструмент должен всегда выходить с одного адреса. HTTP или SOCKS5 выбирают при покупке, один IP работает с одним протоколом.

Как это сделать с Proxy302: шаги

  1. Шаг 1

    Откройте страницу ротационных резидентных прокси, выберите линию, оставьте протокол HTTP и нажмите «Проверить цену и создать».

  2. Шаг 2

    Откройте «Мои активы» (раздел консоли со всем, что вы купили) и скопируйте HOST, PORT, USERNAME и PASSWORD. На странице «Подключение» есть готовый пример с вашими данными.

  3. Шаг 3

    Подставьте значения в команды выше.

  4. Шаг 4

    Подтвердите выход запросом к https://ipinfo.io/json через прокси.

  5. Шаг 5

    Из материкового Китая сначала запустите вспомогательную программу на странице «Подключение» и держите её открытой, пока работает прокси.

Цены и ограничения

Бюджетная линия стоит $1,50 за ГБ, $1,35 за ГБ в пакете 100 ГБ и $1,20 за ГБ при 300 ГБ. Статический ISP IP — $0,50 за один день и $7,99 за 30 дней. Бесплатного пробного периода нет, минимальная покупка — 1 ГБ или один IP на один день. Набор доступных локаций меняется ежедневно.

Вопросы и ответы

Прокси и зеркало PyPI — это одно и то же?

Нет. Прокси меняет сетевой путь, --index-url — адрес, откуда pip скачивает. Они задаются отдельно и могут сочетаться.

Что главнее: командная строка или файл настроек?

По странице конфигурации pip: сначала командная строка, потом переменные окружения, затем файлы настроек.

Как использовать прокси только для одного проекта?

Активируйте виртуальное окружение проекта и выполните pip config set --site global.proxy ...: --site ограничивает изменение файлом настроек текущего окружения.

Можно ли использовать SOCKS5-прокси с pip?

В прочитанных нами страницах pip про SOCKS ничего не сказано. Используйте адрес HTTP-прокси.

Ссылки и источники

5
  1. pip docs: User Guide (using a proxy server)

    Официальная документация · Проверено:

    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.

  2. pip docs: Configuration

    Официальная документация · Проверено:

    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.

  3. pip docs: pip command reference (general options)

    Официальная документация · Проверено:

    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.

  4. pip docs: pip config

    Официальная документация · Проверено:

    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.

  5. Proxy302 product facts and price list

    Наблюдение за продуктом · Проверено:

    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 — настроить его в браузере можно за несколько минут.