pip3 下载超时

在使用pip3安装库时遇到读取超时错误。本文提供了一个答案来解决这个问题。
摘要由CSDN通过智能技术生成

sudo pip3 install scikit-learn (any module really just using most recent attempt)

sudo pip3 install -U scikit-learn

sudo -H pip3 install -U scikit-learn

sudo -H pip3 --default-timeout=200 install -U scikit-learn

sudo python3 -m pip install scikit-learn

every command and any combination of the above results in the same error: Read timed out. The error always occurs at the same point (scikit-learn happens at 24%). I am using the latest version of pip(8.1.2) and I am on ubuntu mate 16.04. The exact error is:

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/_vendor/requests/packages/urllib3/response.py", line 228, in _error_catcher
    yield
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/_vendor/requests/packages/urllib3/response.py", line 310, in read
    data = self._fp.read(amt)
   File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/_vendor/cachecontrol/filewrapper.py", line 49, in read
     data = self.__fp.read(amt)
  File "/usr/lib/python3.5/http/client.py", line 448, in read
    n = self.readinto(b)
  File "/usr/lib/python3.5/http/client.py", line 488, in readinto
    n = self.fp.readinto(b)
  File "/usr/lib/python3.5/socket.py", line 575, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3.5/ssl.py", line 929, in recv_into
    return self.read(nbytes, buffer)
  File "/usr/lib/python3.5/ssl.py", line 791, in read
    return self._sslobj.read(len, buffer)
  File "/usr/lib/python3.5/ssl.py", line 575, in read
    v = self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/commands/install.py", line 310, in run
    wb.build(autobuilding=True)
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/wheel.py", line 750, in build
    self.requirement_set.prepare_files(self.finder)
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/req/req_set.py", line 370, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/req/req_set.py", line 587, in _prepare_file
    session=self.session, hashes=hashes)
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/download.py", line 810, in unpack_url
    hashes=hashes
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/download.py", line 649, in unpack_http_url
hashes)
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/download.py", line 871, in _download_http_url
_download_url(resp, link, content_file, hashes)
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/download.py", line 595, in _download_url
    hashes.check_against_chunks(downloaded_chunks)
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/utils/hashes.py", line 46, in check_against_chunks
    for chunk in chunks:
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/download.py", line 563, in written_chunks
    for chunk in chunks:
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/utils/ui.py", line 139, in iter
    for x in it:
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/download.py", line 552, in resp_read
decode_content=False):
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/_vendor/requests/packages/urllib3/response.py", line 353, in stream
    data = self.read(amt=amt, decode_content=decode_content)
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/_vendor/requests/packages/urllib3/response.py", line 320, in read
    flush_decoder = True
  File "/usr/lib/python3.5/contextlib.py", line 77, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/local/lib/python3.5/dist-packages/pip-8.1.2-py3.5.egg/pip/_vendor/requests/packages/urllib3/response.py", line 233, in _error_catcher
    raise ReadTimeoutError(self._pool, None, 'Read timed out.')
pip._vendor.requests.packages.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out.
share improve this question
 

1 Answer

Setting the default socket timeout to a higher value (e.g. 1000 seconds) should fix your problem:

pip3 install -U --timeout 1000 scikit-learn

The suitable timeout value, of course, depends on your connection speed and quality. Note that the socket timeout, AFAIK, is the maximum time the socket-level data flow is interrupted before an error is raised, not the total time needed to download packages.

share improve this answer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值