linux && cloud studio && Ubuntu16.04python
簡單解決多版本python切換以及多版本pip對應問題linux
多版本python: 更改前先查看版本號bash
$ python -V
Python 2.7.12
複製代碼
$ python2 -V
Python 2.7.12
複製代碼
$ python3 -V
Python 3.5.2
複製代碼
經過下面的命令看到python3的不少可執行文件路徑,留意 /usr/bin/python3.5,下面須要用來創建連接python2.7
$ 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和python3spa
其實上面的步驟執行完後,pip默認對應版本就已是python3.5了,而pip3不變仍然對應python3,這裏要改的是pip2的配置文件,不然沒法再使用pip2。 查看一下如今的pip和pip3對應版本3d
$ 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卻出現下面的報錯,這是由於配置文件還沒改code
$ 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
遇到此類問題,但看了文章仍是未解決, 評論或加 QQ:781378815