Python 入門指南 5.0
單元 37 - 認識第三方程式庫與 Brython
Python 除了隨官方直譯器 (interpreter) 的標準程式庫 (standard library) 之外,還有大量的第三方程式庫 (third-party library)
絕大多數的第三方程式庫都可以在 Python Package Index 找到, 簡稱 PyPI ,網址如下
若是要將自己的專案 (project) 上傳到 PyPI ,除了要用套件 (package) 組織程式原始碼檔之外,也要額外提供 setup.py 、 setup.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) ,這裡只需要 App 及 Label 兩種類別
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 ,這個 HelloApp 在 Tk 中就像應用程式物件跟 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 的官網研究如何使用。 |