# 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 命令列編輯器，如 vim 和 emacs。如果你想要一個更 Mac 化的編輯器，那麼來自 Bare Bones Software 的 BBEdit 或 TextWrangler（參見 http://www.barebones.com/products/bbedit/index.html）是不錯的選擇，TextMate（參見 https://macromates.com/）也是個選擇。其他編輯器包括 Gvim（https://macvim-dev.github.io/macvim/）和 Aquamacs（https://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