【问题标题】:How to solve ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443) with pip?如何用 pip 解决 ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443)?
【发布时间】:2017-09-04 01:30:55
【问题描述】:

我最近需要安装一些包

pip install future
pip install scikit-learn
pip install numpy
pip install scipy

我也试过在他们之前写sudo,但所有它都出现了以下红线错误:

Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 290, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1198, in prepare_files
    do_download,
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1376, in unpack_url
    self.session,
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 572, in unpack_http_url
    download_hash = _download_url(resp, link, temp_location)
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 433, in _download_url
    for chunk in resp_read(4096):
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 421, in resp_read
    chunk_size, decode_content=False):
  File "/usr/lib/python2.7/dist-packages/urllib3/response.py", line 256, in stream
    data = self.read(amt=amt, decode_content=decode_content)
  File "/usr/lib/python2.7/dist-packages/urllib3/response.py", line 201, in read
    raise ReadTimeoutError(self._pool, None, 'Read timed out.')
ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out.

Storing debug log for failure in /root/.pip/pip.log'

【问题讨论】:

  • 除非确实有一个叫做红屏错误的错误,否则不要把它作为标题
  • 我认为是网络问题尝试ping pypi.python.org 看看它是否有效。它可以通过简单的方法来解决,例如重新启动路由器或重新连接到您的互联网,甚至只是过一段时间再试一次。发帖前请关注How to ask
  • 如果它必须绕过代理也可能发生这种情况。做: pip install future --proxy=
  • 我通过停止 openconnect 代理来解决它:| :))

标签: python pip


【解决方案1】:

在安装中使用--default-timeout=100 参数:

sudo pip install --default-timeout=100 future

【讨论】:

  • 另外,我使用了export PIP_DEFAULT_TIMEOUT=100,因为我在共享的 Dockerfile 中有 pip 命令,这对我来说是一个临时要求。但它有效,谢谢!
  • 谢谢,它让我免于上网速度慢的情况。我猜 100 是 pip 在失去连接后等待重新连接的秒数?
  • 我可以永久设置超时吗?
  • 我找不到pip helppip install help 的设置。但是有socket timeout。我想知道默认值是多少?
  • 我找不到pip helppip install help 的设置。但是有socket timeout。我想知道默认值是多少?
【解决方案2】:
sudo pip install --default-timeout=100 future 

或者

export PIP_DEFAULT_TIMEOUT=100

在 Mac OS X 上为我工作

【讨论】:

    【解决方案3】:

    他们有两种方法来处理这个问题:

    sudo pip install --default-timeout=100 future
    

    pip install --default-timeout=100 future
    

    注意:如果您不是计算机的超级用户,sudo pip 命令将不起作用。

    【讨论】:

    • 请注意,将 'sudo' 与 pip 一起使用并不是一个好主意。请改用“--user”标志。
    【解决方案4】:

    如果您使用的是 Jetbrains Pycharm,则适当的解决方案是:

    步骤-1:在pycharm中连接终端/打开终端。

    步骤-2:输入source <path to your projects environment eg: /users/name/myapp/venv>

    步骤-3:根据您的安装运行pip install <package name> 或运行pip3 install <package name>

    这将自动为您的解释器安装包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-01
      • 1970-01-01
      • 2021-04-26
      • 2021-08-30
      • 2021-10-28
      • 1970-01-01
      相关资源
      最近更新 更多