一、起因
之前用的是virtualenv 创建虚拟环境,后来发现pipenv比virtualenv强大多了,一直想用这个试试,每次下载都报
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
一开始以为是网速的原因,下载了多次一直是这个问题,后来百度了下,原来是国内外网速的差异导致下载超时
C:\Users\tan_g>pip install pipenv
Collecting pipenv
Downloading https://files.pythonhosted.org/packages/13/b4/3ffa55f77161cff9a5220f162670f7c5eb00df52e00939e203f601b0f579/pipenv-2018.11.26-py3-none-any.whl (5.2MB)
5% |█▊ | 286kB 3.5kB/s eta 0:23:11Exception:
Traceback (most recent call last):
File "D:\software\anaconda\lib\site-packages\pip\_vendor\urllib3\response.py", line 302, in _error_catcher
yield
File "D:\software\anaconda\lib\site-packages\pip\_vendor\urllib3\response.py", line 384, in read
data = self._fp.read(amt)
File "D:\software\anaconda\lib\site-packages\pip\_vendor\cachecontrol\filewrapper.py", line 60, in read
data = self.__fp.read(amt)
File "D:\software\anaconda\lib\http\client.py", line 449, in read
n = self.readinto(b)
File "D:\software\anaconda\lib\http\client.py", line 493, in readinto
n = self.fp.readinto(b)
File "D:\software\anaconda\lib\socket.py", line 586, in readinto
return self._sock.recv_into(b)
File "D:\software\anaconda\lib\ssl.py", line 1009, in recv_into
return self.read(nbytes, buffer)
File "D:\software\anaconda\lib\ssl.py", line 871, in read
return self._sslobj.read(len, buffer)
File "D:\software\anaconda\lib\ssl.py", line 631, 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 "D:\software\anaconda\lib\site-packages\pip\_internal\basecommand.py", line 228, in main
status = self.run(options, args)
File "D:\software\anaconda\lib\site-packages\pip\_internal\commands\install.py", line 291, in run
resolver.resolve(requirement_set)
File "D:\software\anaconda\lib\site-packages\pip\_internal\resolve.py", line 103, in resolve
self._resolve_one(requirement_set, req)
File "D:\software\anaconda\lib\site-packages\pip\_internal\resolve.py", line 257, in _resolve_one
abstract_dist = self._get_abstract_dist_for(req_to_install)
File "D:\software\anaconda\lib\site-packages\pip\_internal\resolve.py", line 210, in _get_abstract_dist_for
self.require_hashes
File "D:\software\anaconda\lib\site-packages\pip\_internal\operations\prepare.py", line 310, in prepare_linked_requirement
progress_bar=self.progress_bar
File "D:\software\anaconda\lib\site-packages\pip\_internal\download.py", line 837, in unpack_url
progress_bar=progress_bar
File "D:\software\anaconda\lib\site-packages\pip\_internal\download.py", line 674, in unpack_http_url
progress_bar)
File "D:\software\anaconda\lib\site-packages\pip\_internal\download.py", line 898, in _download_http_url
_download_url(resp, link, content_file, hashes, progress_bar)
File "D:\software\anaconda\lib\site-packages\pip\_internal\download.py", line 618, in _download_url
hashes.check_against_chunks(downloaded_chunks)
File "D:\software\anaconda\lib\site-packages\pip\_internal\utils\hashes.py", line 48, in check_against_chunks
for chunk in chunks:
File "D:\software\anaconda\lib\site-packages\pip\_internal\download.py", line 586, in written_chunks
for chunk in chunks:
File "D:\software\anaconda\lib\site-packages\pip\_internal\utils\ui.py", line 159, in iter
for x in it:
File "D:\software\anaconda\lib\site-packages\pip\_internal\download.py", line 575, in resp_read
decode_content=False):
File "D:\software\anaconda\lib\site-packages\pip\_vendor\urllib3\response.py", line 436, in stream
data = self.read(amt=amt, decode_content=decode_content)
File "D:\software\anaconda\lib\site-packages\pip\_vendor\urllib3\response.py", line 401, in read
raise IncompleteRead(self._fp_bytes_read, self.length_remaining)
File "D:\software\anaconda\lib\contextlib.py", line 99, in __exit__
self.gen.throw(type, value, traceback)
File "D:\software\anaconda\lib\site-packages\pip\_vendor\urllib3\response.py", line 307, in _error_catcher
raise ReadTimeoutError(self._pool, None, 'Read timed out.')
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
二、解决方法
使用代理,我用的是豆瓣的代理
命令为: pip install --index-url https://pypi.douban.com/simple pipenv
和之前命令比较,中间加了 --index-url https://pypi.douban.com/simple
然后就成功了
C:\Users\tan_g>pip install --index-url https://pypi.douban.com/simple pipenv
Looking in indexes: https://pypi.douban.com/simple
Collecting pipenv
Downloading https://pypi.doubanio.com/packages/13/b4/3ffa55f77161cff9a5220f162670f7c5eb00df52e00939e203f601b0f579/pipenv-2018.11.26-py3-none-any.whl (5.2MB)
100% |████████████████████████████████| 5.2MB 17.1MB/s
Collecting virtualenv-clone>=0.2.5 (from pipenv)
Downloading https://pypi.doubanio.com/packages/b3/ff/161270311f52f6ce6e7a9047d4279755fa3dcb3645ac2554295a626ce508/virtualenv_clone-0.5.1-py3-none-any.whl
Requirement already satisfied: setuptools>=36.2.1 in d:\software\anaconda\lib\site-packages (from pipenv) (39.1.0)
Requirement already satisfied: virtualenv in d:\software\anaconda\lib\site-packages (from pipenv) (16.0.0)
Requirement already satisfied: certifi in d:\software\anaconda\lib\site-packages (from pipenv) (2018.11.29)
Requirement already satisfied: pip>=9.0.1 in d:\software\anaconda\lib\site-packages (from pipenv) (10.0.1)
distributed 1.21.8 requires msgpack, which is not installed.
Installing collected packages: virtualenv-clone, pipenv
Successfully installed pipenv-2018.11.26 virtualenv-clone-0.5.1