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


Мой компьютер работает под управлением Windows за прокси на сервере windows (с помощью active directory), и я не могу понять, как пройти через него с pip (в python3). Я пробовал использовать --proxy, но это все равно просто тайм-ауты. Я также попытался установить длинный тайм-аут (60s), но это не имело никакого значения. Мои настройки прокси верны, и я сравнил их с теми, которые я успешно использую в TortoiseHG, чтобы убедиться.

есть ли другие трюки, которые кто-нибудь знает что я могу попробовать, или есть какие-то ограничения в pip Что касается прокси-серверов windows?

обновление: мои неудачные попытки включали поиск pypi. Я только что попытался установить что-то, и это сработало. Однако поиск по-прежнему не удается. Указывает ли это на ошибку в pip или они работают по-разному?

9 61

9 ответов:

Я пробовал 2 варианта, которые оба работают на NTLM аутентифицированного прокси-сервера моей компании. Вариант 1-использовать --proxy http://user:pass@proxyAddress:proxyPort

Если у вас все еще возникают проблемы, я бы предложил установить прокси-службу аутентификации (я использую CNTLM) и указывая Пип на него т. е. что-то вроде --proxy http://localhost:3128

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

устранение:

1. в Windows перейдите в каталог профиля пользователя (например. C:\Users\Sync) и создать папку с именем"Пип"

2. создайте файл с именем "типун.ini" в этом каталог (Исх. C:\Users\Sync\pip\pip.ini) и введите в него следующее:

    [global]
    trusted-host = pypi.python.org
                   pypi.org
                   files.pythonhosted.org
    proxy = http://[domain name]%5C[username]:[password]@[proxy address]:[proxy port]

заменить [имя домена],[имя пользователя],[пароль],[адрес прокси-сервера] и [прокси порт] С вашей собственной информации.

3. в этот момент я смог запустить"pip install" без каких-либо проблем.

надеюсь, это работает и для других!

P. S.: Это может представлять проблема безопасности из-за того, что ваш пароль хранится в виде обычного текста. Если это проблема, рассмотрите возможность настройки CNTLM с помощью в этой статье (позволяет использовать хэшированный пароль вместо обычного текста). После этого установите proxy = 127.0.0.1:3128в "pip.ini " файл, упомянутый выше.

вот как я его настроил:

  1. Откройте командную строку (CMD) от имени администратора.
  2. экспорт настроек прокси:

    set http_proxy=http://username:password@proxyAddress:port

    set https_proxy=https://username:password@proxyAddress:port

  3. установить пакет, который вы хотите установить:

    pip install PackageName

например:

Example

я столкнулся с той же проблемой на windows 7. Мне удалось заставить его работать, создав папку " pip "с " pip".ini файл" внутри него. Я положил эту папку внутрь "C:\Users\{мой.username}\AppData\Roaming", потому что согласно документации Python:

в Windows файл конфигурации - %APPDATA%\pip\pip.ini

в ПГИ.ini-файл у меня есть только:

[global]
proxy = [proxy address]:[proxy port]

поэтому нет имени пользователя: пароль. И это работает просто отлично.

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

не удалось получить URL http://pypi.python.org/simple/pyreadline: ошибка HTTP 407: Требуется проверка подлинности прокси-сервера ( ISA Server требует авторизации для выполнения запрос. Доступ к фильтру веб-прокси запрещен. )

NTLMaps можно использовать для взаимодействия с NTLM прокси-сервер, став промежуточным прокси.

загрузите NTLMAPs, обновите включенный сервер.cfg, запустите main.py файл, затем укажите параметр прокси-сервера pip на 127.0.0.1:.

мне также нужно было изменить эти значения по умолчанию в server.cfg file to:

LM_PART:1
NT_PART:1

# Highly experimental option. See research.txt for details.
# LM - 06820000
# NT - 05820000
# LM + NT - 
NTLM_FLAGS: 07820000

http://ntlmaps.sourceforge.net/

вы также можете столкнуться с проблемами с сертификатами от вашего прокси. Здесь есть много ответов о том, как получить сертификат вашего прокси-сервера.

на хосте Windows, чтобы разрешить pip очистить прокси, вы можете установить переменную среды, такую как:

PIP_CERT=C:\path\to\certificate\file\in\pem\form\myproxycert.pem

вы также можете использовать до PIP С тем же результатом.

у меня была такая же проблема в удаленной среде windows. Я пробовал много решений, найденных здесь или на других подобных сообщениях, но ничего не работало. Наконец, решение было довольно простым. Я должен был установить NO_PROXY С cmd :

set NO_PROXY="<domain>\<username>:<password>@<host>:<port>"
pip install <packagename>

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

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

установить cntlm: Cntlm: быстрый Прокси аутентификации NTLM в C

Config cntlm.ini:

имя пользователя ob66759

доменное имя

пароль

Прокси proxy1. net: 8080

Прокси proxy2. net: 8080

NoProxy адресу localhost 127.0.0.*, 10.* , 192.168.*

слушать 3128

разрешить 127.0.0.1

#ваш IP

разрешить 10.106.18.138

запустить его:

cntlm-v-c cntlm.ini

теперь в cmd.exe:

pip install --upgrade pip --proxy 127.0.0.1: 3128

Collecting pip
  Downloading https://files.pythonhosted.
44c8a6e917c1820365cbebcb6a8974d1cd045ab4/

    100% |███████████████████████████████
Installing collected packages: pip
  Found existing installation: pip 9.0.1
    Uninstalling pip-9.0.1:
      Successfully uninstalled pip-9.0.1

Successfully installed pip-10.0.1

работает!

вы также можете скрыть пароль:https://stormpoopersmith.com/2012/03/20/using-applications-behind-a-corporate-proxy/

в моем случае это сработало, когда я открыл командную строку (cmd) от имени администратора требуется только и никакой дополнительной информации о настройках прокси.