在 Windows 10 上通过代理安装 Python pip 包

5

我正在尝试在Windows 10上安装Python pip包。不幸的是,我的工作代理服务器给了我麻烦。

我尝试过以下方法:

  1. python -m pip install --proxy "http://sam.s1:1234@proxy.det.nsw.edu.au:8080"
  2. python -m pip install --proxy http://sam.s1:1234@proxy.det.nsw.edu.au:8080
    1. & 2. 将协议更改为https
    1. & 2. 省略协议,例如:python -m pip install --proxy sam.s1:1234@proxy.det.nsw.edu.au:8080
  3. set HTTP_PROXY=sam.s1:1234@proxy.det.nsw.edu.au:8080 set HTTPS_PROXY=%HTTP_PROXY% set FTP_PROXY=%HTTP_PROXY%
  4. 按照步骤1到4中所述的方式编辑HTTP_PROXY环境变量的代理地址。
  5. 在%APP_DATA%/pip/下创建一个pip.ini文件,内容如下:

[global] proxy = "http://sam.s1:1234@proxy.det.nsw.edu.au:8080" trusted-host = pypi.python.org

  1. 按照步骤1到4中所述的方式编辑pip.ini文件中的代理地址。

它们都给了我类似的错误,例如:

Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x000002A6F091B080>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed',))': /simple/django/

Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x000002142813B128>, 'Connection to pypi.python.org timed out. (connect timeout=15)')': /simple/django/

Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required',))': /simple/django/

尽管彻底解决如何通过代理下载软件包的问题会很好,但我会接受任何完全绕过代理的方法的说明,例如从源代码编译并下载软件包(通常我使用Ubuntu,所以不知道如何在Windows上做这种事情)。
其他信息:
- 代理是通过pac脚本配置的。 - 我目前正在尝试安装Django软件包,但将来可能会有其他软件包。 - 当我安装Python 3.6.3时(通过类似于“您是否还要安装pip以及Python”的复选框),我安装了pip。 - 我知道pip正在从.ini文件中获取设置,因为我可以通过为[list]设置一个值来更改$ pip list的输出。

1
我对代理的事情一无所知,但你可以从PyPI下载Python包,并使用pip安装它们(在大多数情况下不需要从源代码编译,当然也不需要用Django)。你可以从这里获取Django:https://pypi.python.org/pypi/Django/1.11.7。 - user8651755
有趣,我以前从未使用过PyPy。它是否像下载软件包然后将pip指向文件那样简单?例如:$ python -m pip install Django-1.11.7.tar.gz - Sam
这正是你会做的。只是为了澄清,PyPI 是 Python 包索引,而 PyPy 则是 Python 的另一种实现。 - user8651755
哦,哈哈。谢谢澄清,我确实花了几分钟时间看 PyPy 很困惑。我尝试了您的建议,它尝试 Collecting pytz (from Django==1.11.7),这似乎是 Django 需要的时区包,然后由于代理问题再次失败。至少,用您的方法,我可以等待它在安装依赖项时失败,然后通过 PyPI 下载和安装依赖项,然后重复此过程。不是理想的解决方案,但似乎没有其他方法可行。 - Sam
1
只是为了未来的人更新一下;看起来唯一需要下载的依赖是pytz,所以我通过下载Django-1.11.7.tar.gz和pytz-2017.3.zip并使用pip在本地安装它们来安装了Django。@Blurp 如果你想把你的评论写成答案,我会标记它为正确的。 - Sam
1个回答

4
我对代理的事情一无所知,但您可以从Python软件包索引(PyPI)下载Python软件包,并通过pip进行安装。在大多数情况下,没有必要从源代码进行编译,当然也不需要这样做来安装Django。
您可以从这里下载Django,然后使用pip install <path to downloaded package>进行安装。

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