环境:
win10,安装有python2和python3,主要使用python3,所有环境变量配合的也是python3,之前一直用的好好的,pip可以在命令行和pycharm中正常使用.
pycharm 社区版,201802
缘由:
升级了pip后,pycharm--File--Setting--Project--Project Interpreter--任意安装一个包都会报错
于是在pycharm的控制台执行了pip,提示Did not provide a command ,感觉是pycharm无法识别这个pip命令.
于是在系统打开cmd窗口,输入pip,也是提示
怀疑是pip 是pip3覆盖了,找到了python的Scripts目录
在cmd尝试pip.exe 是可以被识别的
奇怪为什么exe结尾的命令一定要带后缀才能被识别,百度说可能是环境变量PATHEXT没配,但是我检查了自己的环境变量没有问题,而且我现在是只有这一个pip.exe 必须带后缀才能执行,其他的exe不需要带后缀.所以排除了这个后缀问题
灵机一动,不知道系统识别的pip命令是在什么位置,pip.exe 又是在哪里,查了下windows查找命令所在位置的命令是 where XX
注意必须在dos窗口下运行,在powershell下不支持where命令
原来pip命令匹配到3个可执行文件,按照顺序来匹配,每次输入的pip其实是C:\strawberry\perl\bin\pip
原来是最近我安装了蓝叠模拟器,这个strawberry自带的pip
检查环境变量PATH,修改strawberry和python的顺序,把python放到strawberry前面,保存环境变量后重试
必须重新dos窗口才会加载新的环境变量,输入where pip,检查匹配的顺序
再输入 pip命令看能否识别
必须重启pycharm才会加载新的环境变量,在terminal输入pip,也可以识别了
但是pycharm安装库还是失败
怀疑是我的pycharm太旧,跟pip不匹配(pycharm是2018年的,目前最新是2022版本的,pip却已经更新到最新V23了)
于是下载了最新的pycharm社区版,注意因为这个社区版是免安装版本,所以不能升级,只能安装在另外一个新的目录
新的pycharm总算成功了
总结思路:
在pycharm的terminal检查pip命令是否可用---在dos检查pip命令,pip3命令--检查python的Scripts目录是否有pip.exe, pip3.exe--在dos用where 命令检查系统解析的pip在哪里--发现是dos解析pip的顺序问题--修改环境变量Path中的pip命令的解析顺序,把python的pip移到最前面--dos中pip命令正常了,pycharm仍无法安装第三方包--检查是否pycharm版本太低,下载最新的pycharm---解决问题