linux
&&
cloud studio
&&
Ubuntu16.04
简单解决多版本python切换以及多版本pip对应问题
1.python2切换成python
多版本python:
更改前先查看版本号
$ python -V Python 2.7.12
$ python2 -V Python 2.7.12
$ python3 -V Python 3.5.2
通过下面的命令看到python3的很多可执行文件路径,留意 /usr/bin/python3.5,下面需要用来建立链接
$ whereis python3 python3: /usr/bin/python3.5-config /usr/bin/python3.5m-config /usr/bin/python3.5m /usr/bin/python3 /usr/bin/python3.5 /usr/lib/python3 /usr/lib/python3.5 /etc/python3 /etc/python3.5 /usr/local/lib/python3.5 /usr/include/python3.5m /usr/include/python3.5 /usr/share/python3 /usr/share/man/man1/python3.1.gz
查看python得到其可执行路径,把它删掉
$ which python /usr/bin/python
$ sudo rm /usr/bin/python
$ python ~bash: /usr/bin/python: No such file or directory
上面删去后再输入$ python命令就会报错,因为系统不知该如何执行,然后我们为它建立一个新的默认链接到python3.5
$ sudo ln -s /usr/bin/python3.5 /usr/bin/python $ python -V Python 3.5.2
至此就完成默认版本的修改了,也可以用同样方法修改python2和python3
2.更改pip、pip2、pip3命令对应版本
其实上面的步骤执行完后,pip默认对应版本就已经是python3.5了,而pip3不变仍然对应python3,这里要改的是pip2的配置文件,否则无法再使用pip2。
查看一下现在的pip和pip3对应版本
$ pip -V pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
$ pip3 -V pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
但是发现查看pip2却出现下面的报错,这是因为配置文件还没改
$ pip2 - V Traceback (most recent call last): File "/usr/bin/pip2", line 9, in <module> load_entry_point('pip==8.1.1', 'console_scripts', 'pip2')() File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 542, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2568, in load_entry_point raise ImportError("Entry point %r not found" % ((group, name),)) ImportError: Entry point ('console_scripts', 'pip2') not found
打开错误提示中的“/usr/bin/pip2”文件,把文件中第一行的“#!/usr/bin/python”改为“#!/usr/bin/python2” 即可
$ sudo vi /usr/bin/pip2
原文件内容如下:
修改后:
然后测试,pip2成功对应回版本python2.7
$ pip2 -V pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
至此全部完成啦~
有时候会报错 ,大部分原因是因为没有加 sudo