5. 在 Mac 系統使用 Python

作者

Bob Savage <bobsavage@mac.com>

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

5.1. 取得和安裝 MacPython

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

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

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

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

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

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

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

5.1.1. 如何執行 Python 腳本

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

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

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

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

  • 把它拖曳到 PythonLauncher

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

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。

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

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

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

5.3. 安裝額外的 Python 套件

有幾個方法可以安裝額外的 Python 套件:

  • 可以透過標準的 Python distutils 模式(python setup.py install)安裝套件。

  • 許多套件也可以透過 setuptools 擴充套件或 pip 包裝器 (wrapper) 安裝,請參閱 https://pip.pypa.io/

5.4. 於 Mac 上開發 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 的 OS X 包含了 Aqua 原生版本的 Tk,最新版本可以從 https://www.activestate.com 下載和安裝;它也可以從原始碼開始建置。

wxPython 是另一種流行的跨平臺 GUI 工具套件,可在 macOS 上本機執行。套件和文件可從 https://www.wxpython.org 獲得。

PyQt 是另一種流行的跨平臺 GUI 工具套件,可在原生 macOS 上執行。更多資訊可在 https://riverbankcomputing.com/software/pyqt/intro 上找到。

5.5. 於 Mac 上發行 Python 應用程式

在 Mac 上部署獨立 Python 應用程式的標準工具是 py2app。有關安裝和使用 py2app 的更多資訊,請參考 https://pypi.org/project/py2app/

5.6. 其他資源

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

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

另一個好用資源是 MacPython wiki:

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