学到了新的东西, 聊聊pip和python的软链接(理解为环境变量)
Ubuntu16.04 ,安装了python 3.6
总所周知,Ubuntu自带python 2.7 和python 3.5 ,也就是你pip 安装的时候默认是在python3.5的环境里的,这也跟你的命令语句相关,但是我就是要 pip install xx到我python3.6里
那么开始百度,一般大家告诉你,先删除软链接,然后在建新的,也就是 ls -n 命令
ubuntu安装python3.7及软链接切换python3和pip3不成功的解决办法_mygugu的博客-CSDN博客
随便搜了一个来,我当按照上面的步骤,pip死活也弄不对,查看 pip -V的时候一直都是python3.5家的
下面重点才是我要讲的!
理解两个地址
/usr/bin/ 系统预装可执行程序
/usr/loca/binl/ 给用户自己放置的可执行程序,优先级高于上面那个
当你执行 删除软链接 rm -rf /usr/bin/pip 的时候,这就是问题,我搜的所有的教程,都是这条命令,而你的pip软链接根本不在这个地址啊!对的,他在/usr/local/bin中, 这就是我为什么如何正确的操作那些命令,都一再失败的原因,当然这也要看你当初python3.6的时候,你安装在了哪个目录下,whereis python3.6 找一下就好
然后解决办法也很简单,你cd 到/usr/local/bin目录下, 执行 ll (两个L)命令,这也你就能查看到所有软链接了,然后再执行删除原来的pip,在执行 ln -s 就可以了
如果你已经进入到/usr/local/bin 目录下,当然, 你可以把你的软链接放在/usr/bin/下, 但是! 何必呢!
这个时候就是 ln -s ./pip3.6 ./pip 懂我意思吧, 就把在这个目录里执行这个就ok, 因为它下面包含所有的可执行程序,而我们要实现的目的是让pip install 安装到python3.6里去,所以当我执行pip 的时候, 用的是pip3.6, 这就是环境变量(废话过多,给新手理解)
ln -s 这条命令也好理解, ln -s 原来的地址路径 软链接后的地址路径
那么总结一下:pip 安装到 自己新下载的Python版本里
1.cd 到/usr/local/bin目录下, 执行 ll (两个L)命令,删除软链接 rm -rf /usr/local/bin/pip
2.ln -s ./pip3.6 ./pip
继续追加点新的东西,当你根据某个大佬的博文,设置完python3的默认版本时, 敲出python3, 然后进入到 python 3.6 或者3.7的版本时,是不是还挺高兴,成功了,然而过了两天却发现, 你特么的打不开 software & updates, 或者你的 sudo apt-get update失败
嗯,我进了这个坑
问题原因,就是你改了默认的python3的版本出错,我不知道为什么,但我找到了解决办法
删了软链接,把python3的软链接改成原来的
因为我的软链接一直都是在/ usr/local /bin 下, 之前跟着某个博文敲, 把/ usr/bin/ 的python3软链接改了
去你的 /usr/bin 下看,可以重新更改你的软链接
ln -s /usr/bin/python3.5 /usr/bin/python3
如果你是在local下面的那个地址,就直接 sudo rm 软链接名, 删除如此容易
放上几篇我借鉴的文,参考一下
software center - Update manager: "A problem occurred when checking for the updates" - Ask Ubuntu
ubuntu16.04“软件和更新”打不开,没有任何反应,这是什么原因? - 知乎
再接一个后续,安装好Python后,一般我们会用pycharm,然后也会有虚拟环境还有指定pycharm的编辑器,
这是我已经调好的截图了, 有一个小插曲,我并没有把我的Python3.8放在 usr/bin目录下,当我选择Python版本的时候找不到,只有Python2.7 和Python3.5, 建一个软链接,链过去,然后pycharm就能获取到了,之前我们说过的,你自己下载的Python版本,会在 usr/local/bin下, 而Ubuntu系统自带的在 usr/bin下