為 Ubuntu 16.04 安裝 Python 3.8 及 PIP

以跨平臺相容性著稱的 Python,開發版本還是得慎選,否則在 Windows 上寫的很開心換到 Linux 平臺就馬上頭痛。大部分Linux都有内建 Python2.7、及 Python3.5,但偏偏 Python 在 3.6 以後的版本新增了很多方便的語法,因此想要使用 Python3.8 的話就需要自行下載安裝。

安裝 Python3.8

方法一:從 PPA 安裝

大部分網站都可以找到這個方法,就是新增 ppa 源然後直接下載執行檔。

$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt update
$ sudo apt install python3.8

方法二:自己 Build Source Code

人生就是這個但是,新增 ppa 源失敗啊~~~只好自己 Build Python 到系統。

首先安裝 Build Code 需要的依賴包。

$ sudo apt update
$ sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget

下載 Python3.8 原始碼並解壓縮。

$ cd ~/Downloads
$ wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
$ tar -xf Python-3.8.0.tgz

進入 Source Code 開始 Build Code 的步驟。

$ cd Python-3.8.0
$ ./configure --enable-shared

--enable-optimizations 選項會有問題,所以這邊不加,如果要使用 Pyinstaller 要加上 --enable-shared 選項。

$ make
$ sudo make altinstall

最後使用altinstall可以避免改到原生的 Python。

檢查 Python 版本

進入終端機敲入查看是否安裝成功~

$ python3.8 --version
Python 3.8.0

安裝 pip for Python3.8

先安裝 pip3。

$ sudo apt install python3-pip

這個裝好會變成是給 Python3.5 用的,所以要用 Python3.8 再安裝一次。

$ python3.8 -m pip install pip

接下來要修改 bash 設定檔以新增 pip 的所在路徑 ~/.local/bin。把以下文字貼在 ~/.bashrc 最後面即可。

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi

重啓終端機或輸入以下 command 載入新設定。

$ source ~/.bashrc

檢查 pip 版本

進入終端機敲入查看是否安裝成功~

$ pip --version
pip 20.2 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)

如果遇到 module ‘platform’ has no attribute ‘linux_distribution 的問題,可以參考 stackoverflow 這篇的作法。

後話

在開發 Python Project 之前,先了解一下需要支援的平臺及環境,以確保使用的 Python 版本可以正確被執行~如果是既有的 Project,要嘛降版改寫語法(自找麻煩),要嘛就是把環境安裝回來。

僅此記錄一下。

References