1. 程式人生 > >樹莓派上編譯安裝Python3

樹莓派上編譯安裝Python3

在樹莓派上編譯安裝Python3

問題由來

一切始於我的一個專案:我希望能在樹莓派上執行Django 2.0伺服器,但是令我困擾的是專案中的urls.py檔案中用到的include函式與樹莓派系統自帶的python3.5不搭調:Django中的path()函式在引入來自app的urls.py檔案時,需要ctypes.test模組,然而尷尬的是raspbian自帶的python3為3.5版本,它的ctypes模組中並沒有包含test包。之後對比了一下Mac上的python3和Raspberry Pi上Python3的異同,我注意到一點:raspi的Python3中ctypes缺失了test和macholib。所以,一個想法是把缺失的給補上。

解決方法

有兩個思路:

  1. 直接把這兩個包“放”到ctypes中(可能可行,但是我並沒有找到方法)
  2. 重新編譯安裝一個新版本的python3

解決步驟

1. 安裝python3所需要的庫

build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev libssl-dev openssl libgdbm-dev liblzma-dev libreadline-dev libncursesw5-dev

2. 下載python3.6.4(寫稿截止最新)的原始碼並解壓

點選這裡 下載python 3.6.4的原始碼,並解壓縮:

tar -zvxf Python-3.6.4.tgz

3. 編譯原始碼

進入解壓後的目錄,進行編譯:

 ./configure
make

4. 安裝python3

編譯可能會需要一段時間,大約20分鐘左右(視情況而定)。編譯完成後,我們需要進行安裝:

sudo make install

安裝完成後,軟體應該會被安裝在/usr/local/bin/下面,我們需要建立一個軟連線,便於以後的使用:

ln -s /usr/local/bin/python3.6 /usr/bin/python3.6

注意,這裡我只是為了區分原來系統自帶的python3,而選擇將軟連結建立為/usr/bin/python3.6

的。

5. 安裝pip3

之後,我們可以照常安裝pip了:

sudo apt-get install python3-pip python3-dev
sudo pip install --upgrade pip

6. 安裝django

一切完工後,我們可以通過pip進行django的安裝:

sudo pip3 install django

之後,一切大功告成啦!