Python 入門指南 5.0

單元 37 - 認識第三方程式庫與 Brython

~~學習進度表~~

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

PyPI

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

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

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

基本安裝指令如下

$ pip install 第三方程式庫名稱

例如安裝 Kivy

$ pip install Kivy

以下示範簡單的 Kivy 程式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# 引入必要的類別名稱
from kivy.app import App
from kivy.uix.label import Label

# App 類別
class HelloApp(App):
    # 建立視窗元件
    def build(self):
        # 顯示文字標籤
        return Label(text='Hello World!', font_size='30sp')

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

# 檔名: hellokivy.py
# 說明:《Python入門指南》的範例程式
# 網站: http://kaiching.org
# 作者: 張凱慶
# 時間: 2023 年 6 月

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

 2
 3
from kivy.app import App
from kivy.uix.label import Label

如果要設定視窗大小,需要引入 Window 類別,然後呼叫 Size() 設定。

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

 6
 8
10
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() 方法

13
14
if __name__ == '__main__':
    HelloApp().run()

至於執行 Kivy 程式同樣是用指令 python

$ python hellokivy.py
 

舊版的 Kivy 需要跟特定 Python 版本綁在一起,執行指令是用 kivy ,現在 Kivy 程式則是跟一般程式庫一樣,不需要用特別的執行指令 kivy

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

以上,如果需要 Kivy 更進一步的資訊,請參考 Kivy 官網的 Welcome to Kivy 文件目錄,或是到 Kivy 的 GitHub 網址,參考專案的詳細資訊。

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

我們在下一篇開始用第三方程式庫 Brython 來寫網頁應用程式,繼續運用 Encrypt 類別放到瀏覽器中執行。

中英文術語對照
類別class
繼承inherit
直譯器interpreter
套件package
專案project
標準程式庫standard library
第三方程式庫third-party library
重點整理
1. Python 有大量的第三方程式庫,絕大多數第三方程式庫都可以在 Python Package Index 找到, 簡稱 PyPI 。
2. 利用官方直譯器提供的 pip 指令可從 PyPI 安裝第三方程式庫。
3. Kivy 是製作圖形介面的第三方程式庫,需要跟特定的 Python 直譯器版本綁在一起使用。
4. Brython 是讓 Python 程式可以在瀏覽器執行的的第三方程式庫,可以在網頁中直接寫 Python 程式,或是引入 Python 程式。
問題與討論
1. 為什麼除了標準程式庫外,還會有第三方程式庫?
2. 試比較 Tk 跟 Kivy ,兩者製作 GUI 的步驟有什麼共通處?又有什麼不同?
練習
1. PyQt 及 PySide 是兩款 Python 結合 Qt 開發 GUI 的第三方程式庫,請分別到 PyQt 的官網及 PySide 的官網研究如何使用。
2. wxPython 是一款 Python 結合 wxWidgets 開發 GUI 的第三方程式庫,請到 wxPython 的官網研究如何使用。
3. NiceGUI 是一款能在網頁中寫 Python 程式的第三方程式庫,請到 NiceGUI 的官網研究如何使用。
4. Pygame 是一款用 Python 開發 2D 遊戲的遊戲引擎,請到 Pygame 的官網研究如何使用。
5. IronPython 是一款用 .NET 框架開發的 Python 直譯器,使 Python 可以使用 .NET 框架,請到 IronPython 的官網研究如何使用。
6. Jython 是一款用 Java 開發的 Python 直譯器,使 Python 可以運作在 JVM 環境,請到 Jython 的官網研究如何使用。
7. PyScript 是一款能在網頁中寫 Python 程式的第三方程式庫,請到 PyScript 的官網研究如何使用。
8. Pyodide 是一款能在網頁中寫 Python 程式的第三方程式庫,請到 Pyodide 的官網研究如何使用。
9. Pygments 是一款用 Python 標記網頁程式碼語法高亮度的工具,請到 Pygments 的官網研究如何使用。
10. PyInstaller 是一款將 Python 程式碼打包成執行程式的工具,請到 PyInstaller 的官網研究如何使用。

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