Как использовать pip в окнах за аутентификационным прокси
Мой компьютер запускает окна за прокси на сервере Windows (используя активный каталог), и я не могу понять, как пройти через него с помощью pip
(в python3). Я пробовал использовать --proxy
, но это все равно просто таймауты. Я также пытался установить длительный тайм-аут (60 секунд), но это не имело значения. Мои настройки прокси-сервера верны, и я сравнил их с теми, которые я успешно использую в TortoiseHG, чтобы убедиться.
Есть ли какие-либо другие трюки, которые кто-либо знает о том, что я могу попробовать, или есть ли ограничение в pip
в отношении прокси-серверов Windows?
Обновление: Мои неудачные попытки включали поиск pypi. Я просто попытался на самом деле установить что-то, и это сработало. Однако поиск все еще не работает. Означает ли это ошибку в pip
или они работают по-другому?
Ответы
Ответ 1
Я попробовал 2 варианта, которые оба работают на моем прокси-сервере, прошедшем проверку подлинности NTLM.
Вариант 1 заключается в использовании --proxy http://user:[email protected]:proxyPort
Если у вас по-прежнему возникают проблемы, я бы предложил установить службу проверки подлинности прокси (я использую CNTLM) и указывая на нее, то есть что-то как --proxy http://localhost:3128
Ответ 2
Мне потребовалось пару часов, чтобы понять это, но я, наконец, заставил его работать с использованием CNTLM, а затем заставил его работать только с файлом конфигурации pip. Вот как у меня это работает с файлом конфигурации pip...
Решение:
1. В Windows перейдите в каталог своего профиля пользователя (например, C:\Users\Sync) и создайте папку с именем " pip ".
2. Создайте файл с именем " pip.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 " без проблем.
Надеюсь, это работает и для других!
PS: Это может представлять угрозу безопасности из-за того, что ваш пароль хранится в виде обычного текста. Если это проблема, рассмотрите возможность установки CNTLM с помощью этой статьи (позволяет использовать хешированный пароль вместо простого текста). Затем установите proxy = 127.0.0.1:3128
в файле "pip.ini", упомянутом выше.
Ответ 3
Вот как я его установил:
- Откройте командную строку (CMD) в качестве администратора.
-
Экспортируйте настройки прокси-сервера:
set http_proxy=http://username:[email protected]:port
set https_proxy=https://username:[email protected]:port
-
Установите пакет, который вы хотите установить:
pip install PackageName
Например:
![Пример]()
Ответ 4
Я столкнулся с той же проблемой в Windows 7. Мне удалось заставить ее работать, создав в ней папку "pip" с файлом "pip.ini". Я помещаю эту папку внутри "C:\Users\{my.username}\AppData\Roaming", потому что согласно документации Python:
В Windows файл конфигурации% APPDATA%\pip\pip.ini
В файле pip.ini у меня есть только:
[global]
proxy = [proxy address]:[proxy port]
Итак, нет имени пользователя: пароль. И он работает нормально.
Ответ 5
У меня была аналогичная проблема, и я обнаружил, что моя компания использует аутентификацию прокси-сервера NTLM. Если вы видите эту ошибку в файле pip.log, это, вероятно, проблема:
Не удалось получить URL http://pypi.python.org/simple/pyreadline: Ошибка HTTP 407: Требуется аутентификация прокси (для ISA-сервера требуется авторизация для выполнения запрос. Отказано в доступе к фильтру веб-прокси. )
NTLMaps можно использовать для взаимодействия с прокси-сервером NTLM, став промежуточным прокси.
Загрузите NTLMAP, обновите включенный server.cfg, запустите файл main.py, а затем укажите параметр прокси-сервера точки на 127.0.0.1:.
Мне также необходимо было изменить эти значения по умолчанию в файле server.cfg
на:
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/
Ответ 6
Вы также можете столкнуться с проблемами с сертификатами своего прокси. Здесь есть много ответов о том, как получить сертификат прокси.
На хосте Windows, чтобы позволить очистить свой прокси-сервер, вы можете установить переменную среды, например:
PIP_CERT=C:\path\to\certificate\file\in\pem\form\myproxycert.pem
Вы также можете использовать аргумент --cert
для PIP
с тем же результатом.
Ответ 7
У меня была такая же проблема в удаленной среде Windows. Я пробовал много решений, найденных здесь или на других подобных постах, но ничего не получалось. Наконец, решение было довольно простым. Я должен был установить NO_PROXY
с cmd:
set NO_PROXY="<domain>\<username>:<password>@<host>:<port>"
pip install <packagename>
Вы должны использовать двойные кавычки и установить NO_PROXY
в верхний регистр. Вы также можете добавить NO_PROXY
в качестве переменной среды вместо того, чтобы устанавливать ее каждый раз, когда вы используете консоль.
Я надеюсь, что это поможет, если любое другое решение, опубликованное здесь, сработает.
Ответ 8
установить cntlm: Cntlm: быстрый прокси-сервер аутентификации NTLM в C
Конфиг cntlm.ini:
Имя пользователя ob66759
Домен NAM
Секретный пароль
Proxy 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/
Ответ 9
В моем случае это работало, когда я открывал командную строку (cmd) только как администратор, и никакой дополнительной информации о настройках прокси не требовалось.
Ответ 10
та же проблема на Windows10 и выше решения не работают для меня.
используйте консольный инструмент эмулятора, такой как cygwin
а затем сделайте это по умолчанию в Linux:
export http_proxy=<proxy>
export https_proxy=<proxy>
pip install <package>
и все работает нормально.