13

我正在尝试在需要身份验证的代理服务器后面使用 Pip。我已经安装了 cntlm 并填写了散列密码。当我运行这个:

    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. 

但是, pip 不起作用,仍然给我一个超时。知道我不需要另一个代理一切都很好而且花花公子,但 pip 仍然超时。端口 3128 正在工作,因为我可以在该端口上 telnet,它显示为在 netstat 下侦听。那么我应该从这里做什么呢?

谢谢你。

4

1 回答 1

1

我有完全相同的问题。

cntlm 用于认证代理服务器,这些语句意味着你的服务器不需要认证。

pip 命令确实有一个--proxy选项。尝试使用类似的东西:

pip install --proxy=10.0.0.1:80 package_name

如果这有效,您知道您不需要身份验证即可访问网络。如果仍然失败,请尝试:

pip install --proxy=user:password@10.0.0.1:80 package_name

这可以绕过身份验证。我写了一个小 cmd 脚本来在 Windows 中解决这个问题:

@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
于 2013-10-15T16:51:02.060 回答