pip is trying to install rsa<=3.5.0,>=3.1.2 (from awscli)
, and randomly fails with this error:
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
. By random, I mean it works about 80% of the time, fails about 20%, and I don't why it fails.
I don't speak python, so I think it's pip that's failing, and not something in the rsa
module as it's being installed.
Collecting rsa<=3.5.0,>=3.1.2 (from awscli)
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 353, in run
wb.build(autobuilding=True)
File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 749, in build
self.requirement_set.prepare_files(self.finder)
File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 380, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 554, in _prepare_file
require_hashes
File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 278, in populate_link
self.link = finder.find_requirement(self, upgrade)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 465, in find_requirement
all_candidates = self.find_all_candidates(req.name)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 423, in find_all_candidates
for page in self._get_pages(url_locations, project_name):
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 568, in _get_pages
page = self._get_page(location)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 683, in _get_page
return HTMLPage.get_page(link, session=self.session)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 792, in get_page
"Cache-Control": "max-age=600",
File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 501, in get
return self.request('GET', url, **kwargs)
File "/usr/lib/python2.7/dist-packages/pip/download.py", line 386, in request
return super(PipSession, self).request(method, url, *args, **kwargs)
File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 488, in request
resp = self.send(prep, **send_kwargs)
File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 609, in send
r = adapter.send(request, **kwargs)
File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/adapter.py", line 47, in send
resp = super(CacheControlAdapter, self).send(request, **kw)
File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/adapters.py", line 423, in send
timeout=timeout
File "/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 643, in urlopen
_stacktrace=sys.exc_info()[2])
File "/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 315, in increment
total -= 1
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
This also happens to me (pip 9.0.1, Ubuntu, Python 2.7) with an almost identical stacktrace.
What I think is happening here is the fact that the network connectivity is poor and requests is set up to retry the downloads but there is a bug in the retry logic.
This can be a bug in either pip
, requests
or urllib3
. Yay for runtime type checking :)
I'm not sure about the connectivity aspect, at least between my machine and the intarwebs, although perhaps the remote server could have issues. The error has only occurred when installing the rsa module. I couldn't say if the whatever's trying to install it is going to a different server than the other modules, or if they're all coming from the same repository.
pip is a self contained python package.
The fact that your traceback shows other packages being imported means that you are using a patched version of pip (certainly Debian/Ubuntu) so you'll have to report the bug to them.
Cf #3943.
Just wanted to note that I had a similar error which was caused by the (docker) machine not being able to connect to the internet.
Check if you have connectivity, it may be the cause.
Seems like an non descriptive error to me and it would be nice if it gives a hint about the actual error.
In my case I've found that it worked after disabling IPv6. It seems the PIP code doesn't deal well with the fetching connection over IPv6 ...
@pamribeirox, thanks a lot! In my case it was also IPv6 issue.
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Most helpful comment
Just wanted to note that I had a similar error which was caused by the (docker) machine not being able to connect to the internet.
Check if you have connectivity, it may be the cause.
Seems like an non descriptive error to me and it would be nice if it gives a hint about the actual error.