[Python] 版本切換 – alternatives

Python 版本主要分成 Python2 與 Python3,在安裝不同 python library 的時候會需要不同版本的支援,當專案越來越大的時候就要好好管理自己的版本數,本篇整理 [Python] 版本切換 – alternatives/update-alternatives 的簡單使用方法!

查看目前 Python 版本數

以 Centos 為例,假設目前 python version 為 python 3.6

python --version
Python 2.7.5
python3 --version
Python 3.6.8
安裝 Python 3.7

參照連結新增 Python 3.7

wget https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz
tar xzf Python-3.7.7.tgz
cd Python-3.7.7
./configure --enable-optimizations
make altinstall

執行完以上程式碼之後,再次查看 Python 版本數,仍然維持一樣的版本數:

python --version 
Python 2.7.5 
python3 --version 
Python 3.6.8
which python
/usr/bin/python
which python3
/usr/bin/python3
利用 Update-alternatives 管理 Python:

參考連結,可以利用 update-alternatives 的指令簡單切換在 Linux 主機上的 Python 版本數,首先要先確認新安裝的 python 3.7 的位置,接著可以利用以下的指令新增 python3 的選擇,這邊需特別注意 Debian 與 Centos 的下法不太一樣。

CentOS
alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.7 2

Debian
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.7 2

新增完之後可以利用以下的指令選擇想要的 Python 版本,可以互動式選擇自己想要的 Python 版本數:

alternatives --config python3

There are 2 programs which provide 'python3'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/local/bin/python3.7
   2           /usr/bin/python3.6

Enter to keep the current selection[+], or type selection number:

但是 Debian 則是可以使用 –list 去查看,參考連結

update-alternatives --list python3
update-alternatives --config python3
(Optional) 安裝 pip3

有可能在切換之後需要重新安裝 pip3 ,可以參考連結

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py