遇到很奇怪的一个错误,不知道怎么解。
Jeson:iops renren$ /opt/python3.6/bin/pip install django
Collecting django
Could not find a version that satisfies the requirement django (from versions: )
No matching distribution found for django
You are using pip version 9.0.1, however version 9.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
光看这个错误,提示我选择升级,但按道理安装django这种简单常见的安装,不应该和我pip的版本有关系?
而且提示更新的版本9.0.3 和 9.0.1 ,这两个版本差别不大,很难知道具体问题在哪?
我的排查思路如下:
1、通过-vvv ,打印出详细的输出信息
这个时候,我可以获取到更为深入,确定信息。
通过这个错误,搜索谷歌、百度 ,有技术人员提出更新或者重装pip。
File "/opt/python3.6/lib/python3.6/site-packages/pip/req/req_install.py", line 278, in populate_link
self.link = finder.find_requirement(self, upgrade)
File "/opt/python3.6/lib/python3.6/site-packages/pip/index.py", line 514, in find_requirement
'No matching distribution found for %s' % req
pip.exceptions.DistributionNotFound: No matching distribution found for django
2、更新pip
(1)通过如下两种命令,都无法顺利直接完成更新
sudo /opt/python3.6/bin/pip3 install --upgrade django
Could not fetch URL https://pypi.python.org/simple/django/: 403 Client Error: TLSv1.2+ is required for url: https://pypi.python.org/simple/django/ - skipping
Could not find a version that satisfies the requirement django (from versions: )
这是用easy_install 方式,如下:
sudo /opt/python3.6/bin/easy_install-3.6 --upgrade pip=9.0.3
error: Not a URL, existing file, or requirement spec: 'pip=9.0.3'
(2)这个时候考虑重装的方式来更新
wget https://bootstrap.pypa.io/get-pip.py
sudo /opt/python3.6/bin/python3 ./get-pip.py
通过这种方式重新完成安装,并且测试pip可正常使用。
所以,通过这一个例子,我想作几点总结:
1、重视错误日志
如果错误不详细,需要想办法找出更多错误原因,如:
如:执行命令时候加入-vvv
如:程序中修改debug日志模式
如:python中错误详细追踪模块traceback
2、归纳问题
总结下现在情况,什么时间、什么条件下,出现的这种错误
3、找方法
(1)我推荐大家使用google,不行那就百度
但无论选择哪种搜索引擎,一定要找到问题的重点。
因为搜索引擎不会听你的长篇大论,输入越多,搜索引擎越难匹配到你想搜索的内容。
你需要根据问题的点来搜索:
举个例子,如果你搜索这个错误
pip.exceptions.DistributionNotFound: No matching distribution found for django
这个搜索结果会比如下的方式搜索结果少
pip.exceptions.DistributionNotFound: No matching distribution found for
因为去除到django后,其实错误性质是一样的。但能得到可能的结果就多了。
(2)学会问问题
就好像问路似的,你需要清楚告诉别人你想去的地点。这样才能起到问路的效果。
最后,感谢互联网,提供了我们一个更好的方式去追踪搜索问题的足迹。