【问题标题】:Installing a Python pip package on Windows 10, through a proxy通过代理在 Windows 10 上安装 Python pip 包
【发布时间】:2018-04-18 03:02:18
【问题描述】:

我正在尝试在 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:8080set 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(通过复选框显示,您是否还想安装 pip 以及 Python)。
  • 我知道 pip 正在从 .ini 文件中获取设置,因为我可以通过设置 [list] 的值来更改 $ pip list 的输出。

【问题讨论】:

  • 我不知道代理的事情,但是你可以从 PyPI 下载 Python 包并使用 pip 安装它们(大多数情况下不需要从源代码编译,绝对不需要使用 Django)。你可以从这里获取 Django:pypi.python.org/pypi/Django/1.11.7.
  • 有趣,我以前从未使用过 PyPy。是否像下载软件包然后以某种方式将 pip 指向文件一样简单?喜欢:$ python -m pip install Django-1.11.7.tar.gz
  • 这正是你要做的。澄清一下,PyPI 是 Python 包索引,而 PyPy 是 Python 的替代实现。
  • 哦,哈哈。感谢您的澄清,我实际上只是花了几分钟困惑地看着 PyPy。我尝试了你的建议,它尝试了Collecting pytz (from Django==1.11.7),这似乎是 Django 需要的时区包,然后又因为代理的事情而失败。至少,按照您的方式,我可以等待它安装依赖项失败,通过 PyPI 下载并安装依赖项,然后冲洗并重复。不理想,但似乎没有其他工作。
  • 只是给未来人的更新; pytz 似乎是唯一需要下载的依赖项,所以我确实通过下载 Django-1.11.7.ta​​r.gz 和 pytz-2017.3.zip 并使用 pip 在本地安装它们来安装 Django。 @Blurp 如果你想写你的评论作为答案,我会把它标记为正确的。

标签: python windows proxy pip


【解决方案1】:

我不知道代理的事情,但你可以从 Python 包索引 (PyPI) 下载 Python 包并使用 pip 安装它们。大多数情况下不需要从源代码编译,使用 Django 绝对不需要。

您可以下载 Django here,然后使用 pip install <path to downloaded package> 安装它。

【讨论】:

    猜你喜欢
    • 2017-10-22
    • 1970-01-01
    • 2020-02-17
    相关资源
    最近更新 更多