Raspiban Wheezy上預裝的Python3版本是3.2.3,本文將介紹升級到3.4.3的方法。
此文也適用於安裝其它版本(比如最新版本)的Python,只要下載時選擇特定版本可以了。
我用的是B+型的樹莓派,系統是2014-06-20發布的Raspbian Wheezy。
此文也適用於其它Debian系的linux系統(比如Ubuntu)。
先把整個raspbian系統升級到最新。
這一步不是必須的,可能用時較長,完成后可能需要重啟。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
我們就在當前用戶的home目錄下進行吧,進到此目錄
cd ~
安裝python 3.4需要的依賴。有些東西可能已經存在了,會自動忽略。
sudo apt-get install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev zlib1g-dev libssl-dev openssllibgdbm-dev libgdbm-compat-dev
liblzma-dev libreadline-dev libncursesw5-dev
libffi-dev uuid-dev
這樣編譯出來的Python 3.4仍會缺少tkinter模塊(用於GUI圖形用戶界面編程),在樹莓派上可能用不到這個模塊,所以刻意不編譯它。
如果想使用tkinter,或想編譯一個完整的Python,在這里加上tk tk-dev tcl tcl-dev這幾個依賴包即可。
下載Python源碼、解壓。
第1行的命令,從Python官網下載3.4.3版的源碼。
第2行的命令,把源碼解壓到當前目錄下的Python-3.4.3目錄里。
wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz tar zxvf Python-3.4.3.tgz
配置、編譯、安裝。如果順利的話,在樹莓派B+用時1小時20分鍾左右,編譯后源碼的目錄會膨脹到130 MB。
第2行后面的參數表示,我們要把新版Python安裝到/opt/python3.4目錄下。
在make命令后再執行一次make命令(會運行極短時間),既可看到仍有哪些Python模塊無法編譯,然后排查原因(通常是沒安裝相應的依賴包)。
cd ./Python-3.4.3 ./configure --prefix=/opt/python3.4 make
make
sudo make install
可以給./configure后面加上優化選項,如下是打開LTO優化:
./configure --prefix=/opt/python3.5 --with-lto
推薦打開這個選項,這個選項在Python 3.5及以上版本才有。
(還有關於GPO的優化選項,一般在樹莓派上用不到GPO優化,這里就不說了,需要請查閱文檔。)
創建軟鏈接。創建之后,打python3.4就能啟動Python 3.4.3了。
第一行創建/usr/bin/python3.4這個軟鏈接指向Python 3.4.3。
第二行創建一個pip的軟鏈接。pip已經被官方集成到Python 3.4里,用它安裝pypi上的第三方模塊很方便。
sudo ln -s /opt/python3.4/bin/python3.4 /usr/bin/python3.4 sudo ln -s /opt/python3.4/bin/pip3.4 /usr/bin/pip3.4
(注意不要覆蓋/usr/bin/python3這個軟鏈接,python3命令(啟動系統自帶的Python)及其安裝的模塊承擔了系統維護的工作。)
至此,安裝成功,打python3.4可以啟動Python 3.4.3
需要說明一下,在新安裝的Python 3.4.3里可以正常使用sqlite3,但sqlite的版本比較舊:
Windows上Python 3.4.3自帶的sqlite版本是3.8.3.1,這是因為使用了Raspbian自帶的sqlite的緣故,其它通過鏈接使用的模塊也可能出現此問題。