1 情景还原
这两天晚上,博主一时兴起想做两道CTF题,结果一跑dirsearch和arjun都不行,而且都是提示我缺少requests模块。
于是我使用pip install requests,但是又提示我requests已安装???
而且最关键的是我使用pip,不管换成什么源,都无法安装任何模块,都是提示我
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by ……
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by ……
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by ……
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by ……
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by ……
ERROR: Could not find a version that satisfies the requirement XXX (from v ersions: none)
ERROR: No matching distribution found for XXX
2 分析成因
- 没使用国内镜像源
python默认是国外镜像,超时也正常,但如果你以前设置过国内镜像,就算忘了有没有设过,只要之前能安装,那可能就不是这个问题 - 电脑开了代理,导致无法正常联网
有的时候做题开了127.0.0.1的代理,就可能导致该问题 - 装了多个python,导致pip和python对不上号
重灾区,可能你用了大半年的模块,都安装到了另一个版本的python目录
情景:你当前使用的python-a,并且你已经装了python-b。当前使用pip-b,你一直以为用的是pip-a。 - pip被破坏,导致异常
如果你用过pip uninstall等命令,并且中途还进行了 ctrl+c 等操作,有可能会导致该问题
当然,也有可能是:你切换到了python-b,把pip-b卸载了,然后高高兴兴的回去使用python-a,发现家被偷了【pip-a压根没装东西】 - 某些配置文件被误删
下面会讲,也是本人的一些猜测
3 解决方法
3.1 使用国内镜像源
- 一条命令直接永久设置,不然每次都要-i:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
- 如果不行,就修改配置文件👇👇👇
打开:C:\Users\用户名\AppData\Roaming\pip\pip.ini[global] timeout=40 index-url=http://mirrors.aliyun.com/pypi/simple/ extra-index-url= https://pypi.tuna.tsinghua.edu.cn/simple/ http://pypi.douban.com/simple/ http://pypi.mirrors.ustc.edu.cn/simple/ [install] trusted-host= pypi.tuna.tsinghua.edu.cn mirrors.aliyun.com pypi.douban.com pypi.mirrors.ustc.edu.cn
- 添加环境变量:我的电脑->属性->设置->关于->高级系统设置->环境变量->系统变量->path->新建
3.2 关闭代理
1、看看你右下角是否开了openvpn或者v2ray等代理软件,再看看是否打开了代理,如果有就关掉
2、再看看设置->网络和internet->代理,是否开启了代理?如果有就关掉
确保自己没开代理后,重新试一下,如果还是不行,就继续往下走
3.3 python和pip
使用该解决方法的前提是,你装了多个版本的python
敲三条命令:
1、python --version:查看当前python版本
2、where python:查看当前使用python在什么位置
3、where pip:查看当前使用的pip在什么位置
敲完命令注意:
1、python版本对不对?
2、python路径和版本对不对的上?
3、pip路径是否在当前使用的【python路径\scripts】下?
如果都对的上,就看第四个解决方案。对不上就看下面:
1、打开 X:\……python\scripts目录,看看pip文件名有没有给你修改过?比如本来是pip.exe,给你改成pip3-10.exe,那你敲pip命令,系统只会去找环境变量里面其他python版本是否有名字叫pip.exe的文件
2、把文件修改为pip.exe,把其他版本python的pip改成其他名字
3.4 使用安装包修复
1、打开你当时的安装包(版本要对上)或 直接控制面板->程序->找到python右键->更改
2、点击modify,如果pip有勾(取消勾选,一路下一步;完了以后重新打开安装包,把pip勾上再装)
如果pip没勾(勾上,一路下一步即可)
3、点击Repair,一路下一步
3.5 配置文件恢复
有可能你在做题 或者 没事干的时候,看到d盘有个ssl文件夹,觉得没啥用,直接把整个文件夹删了,这就导致了ssl异常
ssl异常也可能会导致莫名其妙的问题,所以解决方法就是:
1、根据报错,在D盘新建ssl文件夹,空目录即可
2、再跑一次脚本,或者pip,看看是否恢复正常
如果还是不行,可以在评论区留言或者尝试是否有其他方法,也可以在评论区分享你的做法,大家互相学习。