Как использовать pip на окнах за прокси-сервером аутентификации - PullRequest
74 голосов
/ 14 марта 2012

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

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

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

Ответы [ 10 ]

89 голосов
/ 08 августа 2012

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

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

44 голосов
/ 14 мая 2016

Мне потребовалось пару часов, чтобы понять это, но я, наконец, заставил его работать с использованием 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", упомянутом выше.

37 голосов
/ 31 января 2017

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

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

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

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

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

    pip install PackageName

Например:

Example

15 голосов
/ 22 декабря 2016

Я столкнулся с той же проблемой в 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]

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

7 голосов
/ 19 марта 2012

У меня была похожая проблема, и я обнаружил, что моя компания использует проверку подлинности прокси NTLM. Если вы видите эту ошибку в вашем pip.log, возможно, это проблема:

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

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

Загрузите NTLMAP, обновите включенный server.cfg, запустите файл main.py, затем установите для параметра прокси-сервера pip значение 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/

1 голос
/ 14 июня 2019

та же проблема на Windows10 и выше решения не работают для меня.

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

export http_proxy=<proxy>
export https_proxy=<proxy>
pip install <package>

и все работает нормально.

1 голос
/ 17 февраля 2017

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

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

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

Вы также можете использовать аргумент --cert для PIP с тем же результатом.

0 голосов
/ 31 августа 2018

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

0 голосов
/ 25 мая 2018

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

Конфиг cntlm.ini:

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

Домен NAM

Секретный пароль

Proxy proxy1.net:8080

Proxy 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/

0 голосов
/ 17 апреля 2018

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...