Как использовать pip в windows за аутентифицирующим прокси-сервером
Мой компьютер работает под управлением Windows за прокси на сервере windows (с помощью active directory), и я не могу понять, как пройти через него с pip
(в python3). Я пробовал использовать --proxy
, но это все равно просто тайм-ауты. Я также попытался установить длинный тайм-аут (60s), но это не имело никакого значения. Мои настройки прокси верны, и я сравнил их с теми, которые я успешно использую в TortoiseHG, чтобы убедиться.
есть ли другие трюки, которые кто-нибудь знает что я могу попробовать, или есть какие-то ограничения в pip
Что касается прокси-серверов windows?
обновление: мои неудачные попытки включали поиск pypi. Я только что попытался установить что-то, и это сработало. Однако поиск по-прежнему не удается. Указывает ли это на ошибку в pip
или они работают по-разному?
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 " файл, упомянутый выше.
вот как я его настроил:
- Откройте командную строку (CMD) от имени администратора.
экспорт настроек прокси:
set http_proxy=http://username:password@proxyAddress:port
set https_proxy=https://username:password@proxyAddress:port
установить пакет, который вы хотите установить:
pip install PackageName
например:
я столкнулся с той же проблемой на 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
вы также можете столкнуться с проблемами с сертификатами от вашего прокси. Здесь есть много ответов о том, как получить сертификат вашего прокси-сервера.
на хосте 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/