Python 入門指南

單元 28 - 認識第三方程式庫與 Django

~~學習進度表~~

Python 除了隨官方直譯器 (interpreter) 的標準程式庫 (standard library) 之外,還有大量的第三方程式庫 (third-party library)

PyPI

絕大多數的第三方程式庫都可以在 Python Package Index 找到, 簡稱 PyPI ,網址如下

若是要將自己的專案 (project) 上傳到 PyPI ,除了要用套件 (package) 組織程式原始碼檔之外,也要額外提供 setup.pysetup.cfg.pypirc 等檔案,細節請參考官網文件 6. The Python Package Index (PyPI)

Python 3.4 之後隨官方直譯器可以直接在命令列用指令 pip 下載安裝 PyPI 中的第三方程式庫,絕大多數的第三方程式庫都可用 pip 安裝到 Python 直譯器的安裝路徑,因此可以在程式中直接 import 使用。

基本安裝指令如下

pip install 第三方程式庫名稱

例如安裝 Kivy

pip install Kivy

倒是 Kivy 需要跟特定的 Python 版本綁在一起,因此用 pip 需要額外下載 Cython ,細節請參考 Kivy 官網的這個安裝說明網頁

Kivy 官網另外提供打包好 Kivy 跟特定 Python 版本直譯器的安裝程式,網址如下

直接用打包好的安裝程式安裝 Kivy 比較簡單,以下示範簡單的 Kivy 程式

# 引入 Kivy 並指定版本
import kivy
kivy.require('1.10.0')

# 引入必要的類別
from kivy.app import App
from kivy.uix.label import Label

# 指定視窗大小
from kivy.core.window import Window
Window.size = (300, 100)

# App 類別
class HelloApp(App):
  def build(self):
    return Label(text='Hello World!', font_size='30sp')

# 執行部分
if __name__ == '__main__':
  HelloApp().run()

#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:hellokivy.py
# 功能:示範利用 Python 設計 Kivy 應用程式
# 作者:張凱慶 */

首先引入 kivy ,同時用 require() 指定 Kivy 的版本

# 引入 Kivy 並指定版本
import kivy
kivy.require('1.10.0')

再來引入必要的類別 (class) ,這裡只需要 AppLabel 兩種類別

# 引入必要的類別
from kivy.app import App
from kivy.uix.label import Label

下面這裡則是設定視窗大小

# 指定視窗大小
from kivy.core.window import Window
Window.size = (300, 100)

然後是定義繼承 (inherit)App類別

# App 類別
class HelloApp(App):
  def build(self):
    return Label(text='Hello World!', font_size='30sp')

HelloApp 類別繼承App ,這個 HelloAppTk 中就像應用程式物件跟 Frame 型態物件的混合體。

HelloApp 類別只有一個 build() 方法,這個方法用來建立視窗,因為只需要一個顯示 Hello World! 的文字標籤,因此直接回傳 Label 物件,注意 text 屬性是文字標籤的文字, font_size 則是字型大小。

最後執行部分是由 HelloApp 型態的物件呼叫 run() 方法

# 執行部分
if __name__ == '__main__':
  HelloApp().run()

至於執行 Kivy 程式是用指令 kivy

$ kivy hellokivy.py
 

按下 Enter 鍵後,就會跑出一堆載入視窗的相關資訊,最後出現 Hello 視窗,如下圖

以上,如果需要 Kivy 更進一步的資訊,請參考 Kivy 官網的 Guides 文件,或是到 Kivy 的 GitHub 網址,參考各個範例的原始程式碼。

基本上有非常多種的第三方程式庫,每一種程式庫的功能都有其特定的功能,事實上標準程式庫裡的很多模組在以前也是第三方程式庫,如果該第三方程式庫逐漸變得熱門且常用, Python 官方團隊就會考慮納入直譯器直接支援。

我們在下一個單元開始用第三方程式庫 Django 來架站,繼續運用 Encrypt 類別放到網路應用程式裡。安裝 Django 可直接用 pip 指令,如下

pip install Django

或是參考 Django 官網的下載頁面 Download Django

中英文術語對照
類別class
繼承inherit
直譯器interpreter
套件package
專案project
標準程式庫standard library
第三方程式庫third-party library
重點整理
1. Python 有大量的第三方程式庫,絕大多數第三方程式庫都可以在 Python Package Index 找到, 簡稱 PyPI 。
2. 利用官方直譯器提供的 pip 指令可從 PyPI 安裝第三方程式庫。
3. Kivy 是製作圖形介面的第三方程式庫,需要跟特定的 Python 直譯器版本綁在一起使用。
4. Django 是快速架站框架,也屬於 Python 的第三方程式庫,可用 pip 指令直接安裝。
問題與討論
1. 為什麼除了標準程式庫外,還會有第三方程式庫?
2. 試比較 Tk 跟 Kivy ,兩者製作 GUI 的步驟有什麼共通處?又有什麼不同?
練習
1. Kivy 的特性是跨平台,尤其手機平台如 iOS 或 Android ,試著從官網的 Selected Projects 所展示的專案找幾個來玩看看,體驗一下 Kivy 的魔力。
2. Kivy 除了官網外,也把所有原始程式碼放到 GitHub 網站,試著從 kivy/examples at master 找幾個專案來玩一玩。

相關教學影片

上一頁 單元 27 - 完成版的 EncryptController
回 Python 入門指南首頁
下一頁 Django 篇
回 Python 教材首頁
回程式語言教材首頁