如何使用pip解决ReadTimeoutError:HTTPSConnectionPool(host ='pypi.python.org',port = 443)?

Ate*_*eeb 60 python pip

我最近需要安装一些软件包

pip install future
pip install scikit-learn
pip install numpy
pip install scipy
Run Code Online (Sandbox Code Playgroud)

我也尝试过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'
Run Code Online (Sandbox Code Playgroud)

Ate*_*eeb 112

Yaayy!我找到了答案.只需在安装时使用--default-timeout = 100参数即可.例如

sudo pip install --default-timeout=100 future
Run Code Online (Sandbox Code Playgroud)

  • 或者,我使用`export PIP_DEFAULT_TIMEOUT = 100`,因为我在共享的Dockerfile中有`pip`命令,这对我来说是一个临时要求.但是它有效,谢谢! (9认同)
  • 谢谢,它节省了我在缓慢的互联网条件.我猜100是丢失连接后pip等待重新连接的秒数? (3认同)

小智 15

sudo pip install --default-timeout=100 future 
Run Code Online (Sandbox Code Playgroud)

或者

export PIP_DEFAULT_TIMEOUT=100
Run Code Online (Sandbox Code Playgroud)

在 Mac OS X 上为我工作


小智 8

有两种方法可以处理这个问题:

sudo pip install --default-timeout=100 future
Run Code Online (Sandbox Code Playgroud)

或者

pip install --default-timeout=100 future
Run Code Online (Sandbox Code Playgroud)

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

  • 请注意,将“sudo”与 pip 一起使用并不是一个好主意。请改用“--user”标志。 (2认同)