多Python的环境配置
写在前面的几点理解(必看)
- 软链接就是将python具体版本简化,如python3.6之后可以用python直接得到
- anaconda在安装并激活之后,系统会优先寻找anaconda中python软链接
- anaconda下python在~/anaconda3/bin/目录查找python关键字即可
- 系统下python在/usr/bin/目录查找python关键字即可
- anaconda自带python3.7 ros自带python2.7 ubuntu自带python3.6
解决方案
anaconda环境
其实anaconda下的python作用并不大,即使要用anaconda下的python也是去env激活环境里面使用(那里面的python就是另一码事了,直接激活环境使用即可),因此建议在~/anaconda3/bin/目录中只保留python3.7的有关文件,python和python3的都可以删除。
得到结果如下:
这样做之后需要修改一点,让anaconda找到自身的python:
vim ~/anaconda3/bin/conda
将第一行的python改为python3.7,保证conda找对自身python
系统环境
如前所述系统中现在还剩两个python版本,一个是ros的python2.7,一个是ubuntu自带的python3.6,建议平时使用python3.6,因为python2.7太老了。
但为了不打扰现有环境,平时想输入python时用的还是python2.7,输入python2时用的是python2.7,输入python3时用的是python3.6。
现在就是需要建立软连接了,做法就是先清除掉之前的软链接,再构建软连接。全部命令如下
sudo rm -rf /usr/bin/python
sudo rm -rf /usr/bin/python2
sudo rm -rf /usr/bin/python3
sudo ln -sd /usr/bin/python2.7 /usr/bin/python
sudo ln -sd /usr/bin/python3.6 /usr/bin/python3
sudo ln -sd /usr/bin/python2.7 /usr/bin/python2
得到结果如下:
其实大小就知道对应关系了
验证
看anaconda时候还能正常使用
source activate your_env #激活任意环境成功即可
看python对应版本
别忘了退出anaconda环境后再测试
python
输入结果如下
看python2对应版本
别忘了退出anaconda环境后再测试
python2
输入结果如下
看python3对应版本
别忘了退出anaconda环境后再测试
python3
输入结果如下
有关pip说明
pip最近好像更新换代了,其实python和pip的对应关系也更容易了。
现在使用pip可以直接声明python版本,如
python -m pip list
python2 -m pip list
python3 -m pip list
第一行和第二行都会展示我们的python2.7的包,因此结果是一样的。
如果install,可以加上清华源,速度会快很多,
-i https://pypi.tuna.tsinghua.edu.cn/simple
写在后面
这样做之后,我们已经完全掌控了python版本,也方便之后针对不同场景使用不同python。