Python企业防火墙代理407身份验证错误

3
我在公司的防火墙后面,虽然可以访问pypi网站,但是无法通过pip安装软件包。我收到了407错误:

"Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 authenticationrequired'))': /simple"

我尝试了不同的选项,例如:

pip install --proxy=http://proxyhost:proxy_port PackageName 这个不起作用

甚至设置了

http_proxy=http://username:password@proxyAddress:port https_proxy=https://username:password@proxyAddress:port

由于公司的防火墙,这些都不起作用。我该如何安装软件包?

2个回答

2
经过很多努力,最简单的解决方案是:
  1. 访问pypi上的包网站,例如: https://pypi.org/project/pyodbc/#files
  2. 找到相关的wheel,在本地下载
  3. 打开命令提示符并导航到已下载包的位置,例如 "C:\"
  4. 运行 pip install pyodbc-4.0.24-cp37-cp37m-win32.whl
  5. 完成,该包应该已安装好了

0

我曾经遇到过类似的问题,通过在我的计算机上安装本地cntlm代理(甚至可以在没有管理员权限的情况下通过简单地下载.zip文件来完成),我成功解决了这个问题。您需要调整cntlm.ini文件(插入用户名、域名、密码(您可以省略密码并在启动时输入),代理和监听变量(请参见此处以获取更详细的说明)并在名为“pip”的文件夹中创建一个pip.ini文件,该文件夹位于您的用户目录中(对我有效,您也可以将其放在其他位置),内容如下:

[global]
trusted-host = pypi.python.org
               pypi.org
               files.pythonhosted.org
proxy = # your local proxy address here (usually 127.0.0.1:3128)

接下来,使用批处理脚本启动本地代理(我使用的是 path/to/your/cntlm.exe -c cntlm.ini -I -f),然后 pip 应该会将您的 Web 请求路由到本地代理,然后本地代理将为您处理在公司防火墙上的身份验证。

通过这种设置,我目前能够在公司防火墙后面正常使用任何和所有的 pip install 命令。


我希望这能够工作 :( 但是经过几个小时的尝试cntlm后,我不得不转向手动解决方案。 - Kay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接