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

Настройте прокси-серверы с помощью pip, чтобы обойти ограничения, повысить безопасность и упростить управление пакетами.
3 мин. чтения
How to Use Pip with Proxies blog image

В этой статье вы узнаете, как настраивать и использовать прокси-серверы с pip для беспрепятственного управления пакетами в ограниченных сетях.

Различия между государственными и частными доверенными лицами

При выборе прокси важно определить, будет ли он публичным или частным.

Публичные доверенные лица

Публичные прокси-серверы открыты для всех желающих и часто не имеют аутентификации. Хотя они могут обеспечить быстрый доступ к IP-адресу, у них есть и недостатки – низкая скорость, нестабильное соединение и потенциальные запреты IP-адресов. Поскольку они бесплатны и широко доступны, в них часто отсутствуют такие важные функции, как ротация прокси, кэширование и контроль доступа, что делает их ненадежными в производственной среде.

Публичный URL-адрес может быть оформлен следующим образом: https://proxyserver:port.

Частные прокси-серверы

Частные прокси требуют аутентификации, обеспечивают большую безопасность, стабильность и расширенные функции, хотя, как правило, за это приходится платить. Они предлагают безопасное, быстрое и надежное соединение с выделенным IP-адресом, а также такие функции, как аутентификация и ротация прокси.

Доступ обычно контролируется с помощью аутентификации, часто путем включения имени пользователя и пароля в качестве префикса к URL-адресу прокси-сервера, например, так: https://username:password@proxyserver:port.

Использование прокси-серверов с помощью pip

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

  • Адрес прокси-сервера для прокси-службы
  • Порт, который требуется прокси-сервису для связи

Следующий репозиторий proxy-list содержит ежедневно проверяемые публичные прокси-адреса, которые могут быть полезны для тестирования, но не должны использоваться в производственных средах.

В репозитории proxy-list проверьте файл proxy-list-status.txt, чтобы найти работающий публичный прокси. Это можно сделать, проверив файл на наличие адреса, рядом с которым стоит флаг успеха, указывающий на то, что он работает:

Выбор публичного прокси-сервера

В этом руководстве используйте 45.185.162.203:999 в качестве публичного прокси-адреса. Это означает, что адрес прокси-сервера – http://45.185.162.203:999.

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

Самый быстрый способ настроить прокси-сервер pip – передать его адрес при вызове команды pip install с помощью опции командной строки --proxy.

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

# Public Proxy
pip install boto3 --proxy http://45.185.162.203:999

Этот метод полезен для быстрого тестирования и проверки прокси перед постоянной настройкой нового прокси. При публикации пакетов pip он помогает проверить доступность с другого IP.

Настройка прокси-сервера pip с помощью файла конфигурации pip

Для постоянной настройки прокси-сервера pip простым и декларативным решением является файл pip config. Его расположение зависит от вашей операционной системы и может быть найдено в следующих каталогах:

  • Глобальный: общесистемный файл конфигурации, общий для всех пользователей.
  • User: Конфигурационный файл для пользователя, выполняющего процесс pip.
  • Сайт: Файл конфигурации для каждого окружения, использующего виртуальные среды Python.

Эти файлы конфигурации можно найти или создать в следующих местах для каждой системы:

Linux/macOS

В системах на базе Linux файл конфигурации pip называется pip.conf и может быть найден в следующих местах:

  • Глобальный:
    • Системы на базе Debian: Отредактируйте или создайте pip.conf в каталоге/etc`.
    • Системы на базе macOS: Отредактируйте или создайте файл /Library/Application Support/pip/pip.conf.
  • Пользователь:
    • Системы на базе Debian: Отредактируйте или создайте файл ~/pip/pip.conf.
    • Системы на базе macOS: Отредактируйте или создайте файл конфигурации ~/.config/pip/pip.conf.
  • Сайт: При загрузке в виртуальной среде Python он находится по адресу $VIRTUAL_ENV/pip.conf.

Windows

В системе Windows это файл pip.ini, который можно найти в следующих местах:

  • Глобально: Отредактируйте или создайте файл C:\ProgramData\pip\pip.ini. Обратите внимание, что этот файл по умолчанию скрыт в системах Windows, но его можно записать.
  • Пользователь: Отредактируйте или создайте pip.ini в %APPDATA%\pip\.
  • Сайт: При загрузке в виртуальной среде Python отредактируйте или создайте файл конфигурации по адресу %VIRTUAL_ENV%\pip.ini.

Содержание файла конфигурации

В этом примере используется файл конфигурации pip виртуальной среды Python. В активированной виртуальной среде отредактируйте $VIRTUAL_ENV/pip.conf в системах на базе Debian или %VIRTUAL_ENV%\pip.ini в Windows.

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

[global]
proxy = http://45.185.162.203:999

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

(venv) $ pip install boto3

Более подробную информацию о параметрах конфигурации, доступных в файле pip config, вы можете найти в документации проекта.

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

Установка системных переменных окружения гарантирует, что для pip и всех других HTTP-запросов в системе будет использоваться прокси. Для этого используются переменные окружения HTTP_PROXY и HTTPS_PROXY, на которые часто ссылается такое программное обеспечение, как pip, в качестве системного прокси, используемого при выполнении HTTP-запросов.

Linux/macOS

Если вы используете операционную систему Linux, обновите файл /etc/environment, а если вы пользователь macOS, обновите файл .zshrc, расположенный в домашнем каталоге. Затем обновите его, добавив новые записи для вашего прокси-сервера:

HTTP_PROXY=https://proxyserver:port
HTTPS_PROXY=https://proxyserver:port

После перезапуска терминальных сессий или перезагрузки системы переменные окружения будут присутствовать.

Windows

В системе Windows переменные среды можно задать с помощью следующих команд в терминале командной строки:

setx HTTP_PROXY "https://proxyserver:port" /M
setx HTTPS_PROXY "https://proxyserver:port" /M

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

Тестирование конфигурации

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

Linux/macOS

В Linux/macOS используйте следующую команду:

$ python -m venv venv
$ source venve/scripts/activate

# for pip config file or environment variables
(venv) $ pip install requests

Если вы захотите отменить эти настройки для конкретного прокси, вы можете воспользоваться флагами CLI:

# pip cli flag
(venv) $ pip install requests --proxy https://proxyserver:port

В этой команде убедитесь, что вы обновили https://proxyserver:port с помощью собственного прокси.

Windows

В Windows используйте следующую команду:

> python -m venv venv
> .\venv\Scripts\Activate.bat
(venv) > pip install requests

Эти настройки всегда можно отменить с помощью флагов pip CLI:

# pip cli flag
(venv) $ pip install requests --proxy https://proxyserver:port

Устранение неполадок с прокси-серверами трубопроводов

При подключении к HTTP- или HTTPS-прокси с помощью pip вы можете столкнуться со следующими распространенными проблемами, особенно если вы изучаете использование частных прокси или HTTPS-прокси из-за их расширенных возможностей.

Проблемы аутентификации

Проблемы с аутентификацией обычно проявляются в виде ошибки 407 Proxy Authentication Required при попытке подключиться к прокси с помощью pip. Это указывает на то, что прокси требует имя пользователя и пароль для подключения или вы указали неверные учетные данные для прокси.

Проблемы с сертификатами

При подключении к HTTPS-прокси вы можете получить от pip ошибку Certificate verify failed. Это указывает на то, что существует проблема с сертификатом, предоставленным прокси-сервером.

Если ваш частный прокси-сервер использует самоподписанный сертификат, вы можете получить эту ошибку, и сертификат не может быть проверен в центре сертификации. Вы можете использовать параметр CLI --trusted-host при подключении к определенным доменам и игнорировать ошибки самоподписанных сертификатов.

Использование pip с вращающимися прокси-серверами

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

Это можно реализовать с помощью случайного выбора прокси из списка. Ниже приведен простой bash-скрипт, который устанавливает пакеты pip, вращаясь через публичные прокси.

Создайте следующий сценарий bash под названием rotate-proxies.sh:

proxy_list=(
  'http://45.185.162.203:999'
  'http://177.23.176.58:8080'
  'http://83.143.24.66:80'
)

pip_packages=(
  'requests'
  'numpy'
  'pandas'
)

# Loop through packages and install them
for package in "${pip_packages[@]}"
do
  # Randomly select a proxy from the list
  proxy=${proxy_list[$RANDOM % ${#proxy_list[@]}]}
  echo -e  "\nInstalling $package with proxy $proxy"
  pip install --proxy $proxy $package
done

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

$ ./rotate-proxies.sh 

Installing requests with proxy http://177.23.176.58:8080
Collecting requests
  Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)

….

Downloading urllib3-2.3.0-py3-none-any.whl (128 kB)
Installing collected packages: urllib3, idna, charset-normalizer, certifi, requests
Successfully installed certifi-2025.1.31 charset-normalizer-3.4.1 idna-3.10 requests-2.32.3 urllib3-2.3.0

Installing six with proxy http://45.185.162.203:999
Collecting numpy
 Downloading numpy-2.2.2-cp313-cp313-macosx_14_0_x86_64.whl.metadata (62 kB)

…

Installing collected packages: numpy
Successfully installed numpy-2.2.2

Installing pandas with proxy http://83.143.24.66:80
Collecting pandas
  Downloading pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl.metadata (89 kB)

….

Installing collected packages: pytz, tzdata, six, python-dateutil, pandas
Successfully installed pandas-2.2.3 python-dateutil-2.9.0.post0 pytz-2025.1 six-1.17.0 tzdata-2025.1

Преимущества использования прокси-серверов в pip

Прокси помогают разработчикам обходить сетевые ограничения, получать доступ к заблокированным ресурсам и повышать скорость загрузки пакетов. Частные прокси предлагают кэширование, более быстрые соединения и повышенную безопасность за счет маскировки вашей личности.

По сравнению с VPN, прокси-серверы – это легкая альтернатива для запросов на соединение. Хотя VPN шифрует весь интернет-трафик для обеспечения большей конфиденциальности, он может замедлить установку пакетов из-за повышенной задержки. Прокси обеспечивают более быстрое и эффективное решение для управления зависимостями.

Распространенные ошибки и лучшие практики

При использовании прокси-серверов в pip важно следить за распространенными ошибками, поскольку они могут привести к уязвимостям в системе безопасности. Такие ошибки, как неправильные URL-адреса прокси-серверов или неверно настроенные форматы URL-адресов, например отсутствие или неправильный протокол HTTP или HTTPS, могут нарушить соединения с репозиториями пакетов.

Частой проблемой безопасности является жесткое кодирование учетных данных прокси(например, имен пользователей и паролей) в исходных кодах, скриптах или определениях конвейеров непрерывной интеграции и непрерывной доставки (CI/CD). Если этот код будет распространен, может произойти несанкционированный доступ к прокси. Если учетные данные скомпрометированы, прокси может использоваться не по назначению, что приведет к увеличению расходов или даже к кибератакам.

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

Использование прокси данных Bright

Если вы ищете поставщика высококачественных и функциональных прокси-серверов, обратите внимание на Bright Data. Это прокси-решение, которое предоставляет целый ряд IP-адресов, включая жилые, центры обработки данных и мобильные устройства. Кроме того, компания предоставляет специализированные инструменты для сбора данных и веб-скрапинга, включая вращающиеся прокси и Web Unlocker API.

Bright Data поможет вам легко создать прокси для нужд вашего проекта. Чтобы показать вам, насколько это просто, давайте создадим частный прокси для жилых помещений, который вы можете использовать с помощью pip для доступа к пакетам через другой IP-адрес.

Начните с регистрации бесплатной учетной записи Bright Data. Затем перейдите на панель управления пользователя.

В боковом меню нажмите на Proxies & Scraping:

Прокси-серверы Bright Data

После загрузки формы настройте новый жилой прокси. Если вы используете настройки по умолчанию, вы получите прокси с общим IP-адресом, используемым несколькими пользователями Bright Data:

Создание жилого прокси-сервера

Если вы нацелены на определенный регион, вы также можете указать страну, в которой должен находиться IP-адрес.

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

Приборная панель прокси-сервера

Используя эти значения конечных точек, проверьте их доступность с помощью флага --proxy:

$ pip install pandas \
    --trusted-host pypi.org \
    --trusted-host files.pythonhosted.org \
    --proxy https://username:[email protected]:33335

Поскольку прокси-сервер Bright Data использует самоподписанный сертификат, вы можете использовать флаг trusted-host, чтобы внести pypi.org и files.pythonhosted.org в белый список доверенных доменов.

Заключение

Использование прокси с pip помогает повысить анонимность и контроль, позволяя обходить IP-ограничения и геоблокировки. В зависимости от ваших потребностей вы можете выбирать между публичными и частными прокси.

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

Настроить прокси для pip очень просто, с множеством опций, таких как флаги CLI, файл конфигурации pip и переменные окружения. Однако у публичных прокси есть ограничения, и, как уже говорилось, они не идеальны для больших рабочих нагрузок или производственного использования. Для более надежного решения Bright Data предлагает IP-адреса жилых домов и дата-центров, обеспечивая быстрые, стабильные соединения и продвинутые инструменты для веб-скреппинга и сбора данных. Зарегистрируйтесь бесплатно, чтобы начать работу.

Кредитная карта не требуется