Red Hat + pip + virtualenv + proxy = 错误

Red Hat + pip + virtualenv + proxy = 错误

我有一个问题:我的公司代理杀死了每个 pip 安装。 export http_proxy=不起作用: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', error('Tunnel connection failed: 407 Proxy Authentication Required',))

pip install --proxy=... --trusted-host=...不起作用。只有当我一起使用它时我才能安装一些东西pip

而且它在操作系统中。当我使用virtualenv它时,即使一起用也无法工作。我不知道该怎么办。请帮帮我。

例子, sudo pip install --proxy=... --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org sentry

Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)",)': /packages/bb/ee/edda27f5f59a98adb2aa1c0c939d7a15cada155eea73f5b56dc0b593deaa/sentry-9.0.0-py27-none-any.whl
Could not install packages due to an EnvironmentError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/bb/ee/edda27f5f59a98adb2aa1c0c939d7a15cada155eea73f5b56dc0b593deaa/sentry-9.0.0-py27-none-any.whl (Caused by ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)",))

答案1

您的公司代理需要提供用户名和密码,但您的http_proxy环境变量没有这些。

必须http_proxy设置用户名和密码,例如:

http://username:[email protected]:8080/

答案2

可能有多件事同时发生:

  1. 该错误error('Tunnel connection failed: 407 Proxy Authentication Required',)表明您需要身份验证才能使用代理,如这个答案

  2. 除了设置环境变量之外,http_proxy=您通常还需要https_proxy=指示应用程序使用代理服务器进行 https 连接。

  3. 执行命令时,sudo环境将被清理,并且 http_proxy 和 https_proxy 环境变量很可能不适用于 pip 命令。您可以在开头
    添加一行,例如,以保留这些用户提供的环境变量。Defaults env_keep = "http_proxy https_proxy ftp_proxy"/etc/sudoers

答案3

我公司的代理工作得很糟糕/出乎意料——它先下载到中间服务器,然后才给我下载。因此,对于终端用户(我的电脑)来说,下载似乎被中止了。它因异常而崩溃ReadTimeoutError

因此,我增加超时时间并等待 - 然后它会根据需要安装。

相关内容