5. 在 Mac 系統使用 Python

作者:

Bob Savage <bobsavage@mac.com>

Python 在 Mac 的 macOS 上執行和在其他 Unix 平台上執行的原理非常相似,但值得一提的是在 macOS 上有其他額外的功能,例如整合開發環境 (IDE) 與套件管理。

5.1. 取得和安裝 Python

macOS 自 10.8 版本開始至 12.3 版本之間預設安裝 Python 2.7。你也可以到 Python 網站安裝最新的 Python 3 版本。你可以找到建立在"通用二進位 (universal2 binary)" 上的 Python 建置版本,它能夠原生地運行在 Mac 新的 Apple Silicon CPU 與過去的 Intel CPU 上。

在安裝後你必須要做幾件事:

  • 會有一個 Python 3.12 資料夾在你的 Applications 資料夾中。在這裡你可以找到 IDLE,它是作為官方 Python 發行版標準組成的開發環境;以及 Python Launcher,它負責處理在 Finder 中雙擊 Python 腳本的操作。

  • /Library/Frameworks/Python.framework 框架,包括 Python 可執行檔案 (executable) 和函式庫 (library)。安裝程式將此位置新增到 shell 路徑。要解除安裝 Python ,你可以移除這三個專案。Python 可執行檔案的符號連結 (symlink) 則放在 /usr/local/bin/ 中。

備註

在 macOS 10.8-12.3,Apple 提供的 Python 建置版本分別安裝在 /System/Library/Frameworks/Python.framework/usr/bin/python 中。你不應該去修改或刪除這些內容,因為它們由 Apple 控制並且被 Apple 或第三方軟體使用。請記住,如果你選擇從 python.org 安裝較新的 Python 版本,那麼你的計算機上將安裝兩個不同但都可運作的 Python,因此你的路徑和用法與你想要執行的操作一致非常重要。

IDLE 包含一個幫助 (Help) 選單,讓你可以參閱 Python 文件。如果你是 Python 的新手,你應該開始閱讀該文件中的教學介紹。

如果你熟悉其他 Unix 平臺上的 Python,那麼你應該閱讀有關從 Unix shell 執行 Python 腳本的部分。

5.1.1. 如何執行 Python 腳本

在 macOS 上開始使用 Python 的最佳方法是透過 IDLE 整合開發環境;參見 整合化開發工具 (IDE) 部分,並在 IDE 執行時使用幫助選單。

如果要從終端機視窗命令列或 Finder 執行 Python 腳本,首先需要一個編輯器來建立腳本。macOS 附帶了許多標準的 Unix 命令列編輯器,如 vimnano。如果你想要一個更 Mac 化的編輯器,那麼來自 Bare Bones Software 的 BBEdit(參見 http://www.barebones.com/products/bbedit/index.html) 是不錯的選擇,TextMate (參見 https://macromates.com/)也是個選擇。其他編輯器包括 MacVim (https://macvim.org) 和 Aquamacs (https://aquamacs.org/)。

要從終端機視窗執行腳本,你必須確保 /usr/local/bin 位於 shell 搜尋路徑中。

從 Finder 執行你的腳本時,你有兩個選項:

  • 把它拖曳到 Python Launcher

  • 透過 finder Info 視窗選擇 Python Launcher 作為開啟腳本(或任何 .py 腳本)的預設應用程式,然後雙擊腳本。Python Launcher 有各種用來控制腳本啟動方式的選項。拖曳選項可以讓你一次更改多個選項,或使用其偏好設定選單以全域性地更改內容。

5.1.2. 透過 GUI 執行腳本

對於舊版本的 Python,你需要注意一個 macOS 的怪異之處:與 Aqua 視窗管理器溝通的程式(換而言之,任何具有 GUI(圖形化使用者介面)的程式)需要以特殊方式執行。使用 pythonw 而不是 python 來啟動這樣的腳本。

Python 3.9 上,你可以使用 python 或者 pythonw

5.1.3. 設定

macOS 上的 Python 遵循所有標準的 Unix 環境變數,例如 PYTHONPATH,但是為 Finder 啟動的程式設定這些變數並非是標準做法,因為 Finder 在啟動時不會讀取你的 .profile.cshrc。你需要建立一個檔案 ~/.MacOSX/environment.plist。相關資訊請參閱 Apple 的技術問答集 QA1067

更多關於安裝 Python 套件的資訊,參閱 安裝額外的 Python 套件 部分。

5.2. 整合化開發工具 (IDE)

Python 附帶標準的 IDLE 開發環境。有關使用 IDLE 的詳細介紹,請見 https://www.hashcollision.org/hkn/python/idle_intro/index.html

5.3. 安裝額外的 Python 套件

這個章節已經被移動到 Python Packaging User Guide

5.4. 開發 GUI 程式

於 Mac 上使用 Python 來建立 GUI 應用程式有許多選項。

PyObjC 是一個 Apple Objective-C/Cocoa 框架的 Python 繫結 (binding),這是大多數現代 Mac 開發的基礎。有關 PyObjC 的資訊,請見 https://pypi.org/project/pyobjc/

標準的 Python GUI 工具套件是 tkinter,基於跨平臺的 Tk 工具套件 (https://www.tcl.tk)。Apple 的 macOS 包含了 Aqua 原生版本的 Tk,最新版本可以從 https://www.activestate.com 下載和安裝;它也可以從原始碼開始建置。

有许多其他 macOS 的 GUI 工具包可供选择:

  • PySide: Qt GUI 工具包 的官方 Python 绑定包。

  • PyQt: Qt 的替代性 Python 绑定包。

  • Kivy: 一款支持桌面和移动设备的跨平台 GUI 工具包。

  • Toga: BeeWare 项目 的一部分;支持桌面、移动设备、Web 和控制台应用。

  • wxPython: 一款支持桌面操作系统的跨平台工具包。

5.5. 發行 Python 應用程式

有一系列工具可将你的 Python 代码转换为独立发布的应用程序:

  • py2app: 支持基于 Python 项目创建 macOS .app 软件包。

  • Briefcase: BeeWare 项目 的一部分;一款支持在 macOS 上创建 .app 软件包,并能管理签名和公证的跨平台打包工具。

  • PyInstaller: 一款通过创建单独文件或目录作为可发布形式的跨平台打包工具。

5.6. 其他資源

Pythonmac-SIG 郵件清單對於 Mac 上的 Python 使用者和開發者是一個極佳的支援資源:

https://www.python.org/community/sigs/current/pythonmac-sig/

另一個好用資源是 MacPython wiki:

https://wiki.python.org/moin/MacPython