将 pip.conf 与 --extra-index-url 一起使用到专用网络后面的受限镜像会导致不在专用网络上时连接超时

Cox*_*oxy 6 python pip

我的工作场所有一个私人托管的 PyPI 镜像,只能从特定的 IP 地址访问,可以通过 VPN 或在办公室轻松访问,因为它受到 IP 限制。这允许我们pip install使用我们使用的私有包。

要使用镜像,我已经--extra-index-url在里面指定了pip.conf,并且在运行VPN时,可以使用pip install得很好。

我希望能够在连接到 VPN 的情况下使用pip install公开可用的软件包。然而,当我尝试从 PyPI 的公共镜像安装一个简单的公开可用的软件包时,pip 会尝试连接 5 次(每次重试超时 15 秒)到由于缺乏 VPN 而无法访问的私有镜像。错误如下图所示:

$ pip install requests Collecting requests Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x7f36c0bd25c0>, 'Connection to devpi.*REDACTED*.com timed out. (connect timeout=15)')'

由于我使用同一台机器用于工作和个人用途,因此在使用 pip 时我不应该始终连接到工作 VPN,因此这并不是一个真正的选择。我遇到了一种解决方法,即export PIP_CONFIG_FILE=/dev/null在运行之前在终端中运行pip install,但每次我想安装软件包时,这是一个繁琐的过程。

有没有办法让 pip 在尝试连接到无法访问的 URL 之前先在公共镜像中查找包?或者,是否有其他一些可能更干净的解决方法,例如减少重试次数或将超时时间设置为短于 15 秒?