使用pip install了显然与蟒蛇2.7.11+我的Ubuntu 16.04系统中的任何模块抛出这个错误:
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
Run Code Online (Sandbox Code Playgroud)
pip有什么问题?如有必要,我该如何重新安装?
更新:完整回溯如下
sunny@sunny:~$ pip install requests
Collecting requests
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 209, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 328, in run
wb.build(autobuilding=True)
File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 748, in build
self.requirement_set.prepare_files(self.finder)
File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 360, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 512, in _prepare_file
finder, self.upgrade, require_hashes)
File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 273, in populate_link
self.link = finder.find_requirement(self, upgrade)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 442, in find_requirement
all_candidates = self.find_all_candidates(req.name)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 400, 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 545, in _get_pages
page = self._get_page(location)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 648, in _get_page
return HTMLPage.get_page(link, session=self.session)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 757, in get_page
"Cache-Control": "max-age=600",
File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 480, in get
return self.request('GET', url, **kwargs)
File "/usr/lib/python2.7/dist-packages/pip/download.py", line 378, in request
return super(PipSession, self).request(method, url, *args, **kwargs)
File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 468, in request
resp = self.send(prep, **send_kwargs)
File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
File "/usr/share/python-wheels/CacheControl-0.11.5-py2.py3-none-any.whl/cachecontrol/adapter.py", line 46, in send
resp = super(CacheControlAdapter, self).send(request, **kw)
File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/adapters.py", line 376, in send
timeout=timeout
File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 610, in urlopen
_stacktrace=sys.exc_info()[2])
File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 228, in increment
total -= 1
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
Run Code Online (Sandbox Code Playgroud)
sor*_*rin 81
Ubuntu附带了一个来自前寒武纪的PIP版本,如果您不想花费数小时和数小时来调试与pip相关的问题,那么就必须升级它.
apt-get remove python-pip python3-pip
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
python3 get-pip.py
Run Code Online (Sandbox Code Playgroud)
正如您所观察到的,我包含了Python 2.x和3.x的信息
小智 31
如果您位于代理之后,则必须在开始安装之前执行一些额外的配置步骤.您必须将环境变量http_proxy设置为代理地址.使用bash,这是通过命令完成的
export http_proxy="http://user:pass@my.site:port/"
Run Code Online (Sandbox Code Playgroud)
你也可以提供
--proxy=[user:pass@]url:port
Run Code Online (Sandbox Code Playgroud)
pip的参数.该[user:pass@]部分是可选的.
小智 19
更新setuptools对我来说效果很好。
sudo pip install --upgrade setuptools
Run Code Online (Sandbox Code Playgroud)
thi*_*ani 14
首先,由于网络问题,存在此问题,卸载和重新安装一切都不会有太大帮助.可能你落后于代理,在这种情况下你需要设置代理.
但就我而言,我遇到了问题,因为我并没有落后于代理.通常,我在代理后面工作,但在家工作时,我在网络设置中将代理设置为无.
但是,即使删除了代理设置,我仍然会遇到相同的错误.
所以,当我打字的时候
env | grep proxy
Run Code Online (Sandbox Code Playgroud)
我找到了这样的东西:
http_proxy=http://127.0.0.1:1234/
Run Code Online (Sandbox Code Playgroud)
这就是我仍然得到同样错误的原因,即使我认为我已经删除了代理设置.
要取消设置此代理,请键入
unset http_proxy
Run Code Online (Sandbox Code Playgroud)
对所有其他条目采用相同的方法,例如https_proxy.
Jan*_*ins 12
这里发生的是在两个不同的地方(相同的代码,但名称不同)导入时,request/urllib3的销售版本会发生冲突.如果您有网络错误,它不会重试获取方向盘,但会因上述错误而失败.请参阅此处以深入了解此错误.
有关系统点的解决方案,请参见上文.
如果你在virtualenv中有这个问题python -m venv(它仍然复制轮子/usr/share/python-wheels,即使你单独安装了pip),"修复"它的最简单方法似乎是:
/usr/bin/python3.6 -m venv ...requests到环境中(这可能会引发上述错误):<venv>/bin/pip install requestsrequestspip将使用的复制版本:rm <venv>/share/python-wheels/{requests,chardet,urllib3}-*.whl现在<venv>/bin/pip使用已安装的requestsurllib3版本.
| 归档时间: |
|
| 查看次数: |
94143 次 |
| 最近记录: |