2013-09-24 3 views
8

Я пытаюсь использовать Pip за прокси-сервером, который требует аутентификации. Я установил cntlm и заполнил хэшированные пароли. Когда я запускаю это:Невозможно использовать CNTLM для подключения к pip

cntlm -c cntlm.ini -I -M http://www.google.co.uk 

я ввожу свой пароль, а затем получить это в результате:

Config profile 1/4... Auth not required (HTTP code: 200) 
    Config profile 2/4... Auth not required (HTTP code: 200) 
    Config profile 3/4... Auth not required (HTTP code: 200) 
    Config profile 4/4... Auth not required (HTTP code: 200) 

    Your proxy is open, you don't need another proxy. 

Однако, пип не работает, по-прежнему дает мне тайм-аут. Знать, что мне не нужен другой прокси, все в порядке и денди, но пип все еще не работает. Порт 3128 работает, потому что я могу telnet на этом порту, и он отображается как прослушивание под netstat. Так что мне делать дальше?

спасибо.

ответ

0

У меня была такая же проблема.

Cntlm используется для аутентификации прокси-серверов, эти утверждения означают, что ваш сервер не требует аутентификации.

Команда pip имеет опцию --proxy. Попробуйте использовать что-то вроде:

pip install --proxy=10.0.0.1:80 package_name 

Если это работает, вы знаете, что для доступа в Интернет вам не требуется аутентификация. Если он все еще не работает, попробуйте:

pip install --proxy=user:[email protected]:80 package_name 

Это работает, чтобы обойти аутентификацию. Я написал небольшой сценарий cmd, чтобы обойти это в окнах:

@echo off 
:: GetPwd.cmd - Get password with no echo. 
setlocal 
<nul: set /p passwd= 
for /f "delims=" %%i in ('python -c "from getpass import getpass; pwd = getpass();print  pwd;"') do set passwd=%%i 
echo. 

::Prompt for the package name 
set /p package=What package would you like to get: 

::Get the package with PIP 
pip install --proxy="admin:%passwd%@PROXY_ADDRESS:80" %package% 
endlocal 
Смежные вопросы