樹莓派目前能用sudo apt-get install
安裝的默認最高是Python3.4
,但是很多Python3.6+的新特性都無法使用,自己的項目也無法運行。所以需要把它升級。
目前無法簡單安裝,只能自己make編譯。
樹莓派當前能穩定安裝的是Python3.6.6,所以我們要編譯安裝這個版本。
參考:Install Python3 and GPIO to the Raspberry Pi
參考:樹莓派編譯安裝更新版本的Python
方法如下:
# 安裝編譯所需依賴包
sudo apt-get install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev
# 安裝SSL依賴
sudo apt-get install libssl-dev
# 到官網下載Python3.6.6: https://www.python.org/downloads/source/
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz
# 解壓
tar xf Python-3.6.6.tar.xz
# 進入目錄
cd Python-3.6.6
# 開始編譯(時間漫長,需要等待,建議用&&把三句連在一起執行)
sudo ./configure
sudo make
sudo make install
# 升級pip
sudo python3.6 -m pip install --upgrade pip
安裝好Python3.6后,會顯示:

image
如果安裝不成功,則會顯示錯誤。
為了方便輸入命令(如python或python3),我們還要創建一個鏈接:
# 先查詢本機剛裝好的Python3.6的位置
$ which python3.6
/usr/local/bin/python3.6
# 把這個python3.6的鏈接放到/usr/bin中,可供直接輸入命令
$ sudo ln -s /usr/local/bin/python3.6 /usr/bin/python
# 如果不能創建鏈接,遇到有重復,則查詢`python`情況,然后互相變下名字解決
$ python -V
Python 2.7.9
$ sudo mv /usr/bin/python /usr/bin/python2
$ sudo ln -s /usr/local/bin/python3.6 /usr/bin/python
遇到問題 pip3報錯/usr/bin/pip3: bad interpreter: /usr/bin/python3: no such file or directory
這個一般是原本的pip3和現在的python3.6不匹配的原因。
所以我們要找到現在和Python3.6配套的pip3.6,然后把它替換/usr/bin/pip3
就可以了:
# 找到匹配的pip3
$ whereis pip3
pip3: /usr/bin/pip3 /usr/local/bin/pip3.6 /usr/local/bin/pip3 /usr/share/man/man1/pip3.1.gz
# 看到我們的pip3.6的位置,把它創建個鏈接
$ sudo ln -sf /usr/local/bin/pip3.6 /usr/bin/pip3
# OK了
pip安裝任何東西都顯示subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.
這個方法比較好用:
$ sudo rm /usr/bin/lsb_release