# 4. 在苹果系统上使用 Python

作者

  Bob Savage <bobsavage@mac.com>

运行 Mac OS X 的 Macintosh上 的 Python 原则上与任何其他 Unix 平台上的 Python 非常相似，但是还有一些额外的功能，例如 IDE 和包管理器，值得一提。

## 4.1. 获取和安装 MacPython

Mac OS X 10.8 附带 Apple 预安装的 Python 2.7 。 如果你愿意，可以从 Python 网站（ https://www.python.org ）安装最新版本的 Python 3 。 Python 的当前“通用二进制”版本可以在 Mac 的新 Intel 和传统 PPC CPU 上本地运行。

你安装后得到的东西有：

- 应用程序文件夹中的 `Python 3.8` 文件夹。在这里可以找到IDLE，即官方Python发行版的标准的开发环境；PythonLauncher，用来处理来自finder的双击python脚本；以及“build applet”工具，将python脚本打包为系统上的独立应用程序。

- 框架 `/Library/Frameworks/Python.framework` ，包括 Python 可执行文件和库。安装程序将此位置添加到 shell 路径。 要卸载 MacPython ，你可以简单地移除这三个项目。 Python 可执行文件的符号链接放在 /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 脚本的部分。

### 4.1.1. 如何运行 Python 脚本

在 Mac OS X 上开始使用 Python 的最佳方法是通过 IDLE 集成开发环境，参见 IDE 部分，并在 IDE 运行时使用“帮助”菜单。

如果要从终端窗口命令行或 Finder 运行 Python 脚本，首先需要一个编辑器来创建脚本。 Mac OS X 附带了许多标准的 Unix 命令行编辑器，如 vim 和 emacs 。 如果你想要一个更 Mac 化的编辑器，那么:program:BBEdit 或来自 Bare Bones Software 的 TextWrangler （参见 http://www.barebones.com/products/bbedit/index.html ）是不错的选择 ，就如 TextMate`（参见 https://macromates.com/ ）。 其他编辑器包括 :program:`Gvim （ http://macvim-dev.github.io/macvim/ ）和 Aquamacs （ http://aquamacs.org/ ）。

要从终端窗口运行脚本，必须确保:file:/usr/local/bin 位于 shell 搜索路径中。

要从 Finder 运行你的脚本，你有两个选择：

- 把脚本拖拽到 PythonLauncher

- 选择 PythonLauncher 作为通过 finder Info 窗口打开脚本（或任何 .py 脚本）的默认应用程序，然后双击脚本。 PythonLauncher 有各种首选项来控制脚本的启动方式。 拖拽方式允许你为一次调用更改这些选项，或使用其“首选项”菜单全局更改内容。

### 4.1.2. 运行有图形界面的脚本

对于旧版本的 Python ，你需要注意一个 Mac OS X 的怪异之处：与 Aqua 窗口管理器通信的程序（换而言之，任何具有图形界面的程序）需要以特殊方式运行。 使用 pythonw 而不是 python 来启动这样的脚本。

对于Python 3.8，可以使用 python 或 pythonw

### 4.1.3. 配置

OS X 上的 Python 遵循所有标准的 Unix 环境变量，例如 `PYTHONPATH` ，但是为 Finder 启动的程序设置这些变量是非标准的，因为 Finder 在启动时不读取你的 `.profile` 或 `.cshrc` 。你需要创建一个文件 `~/.MacOSX/environment.plist` 。 有关详细信息，请参阅 Apple 的技术文档 QA1067 。

更多关于在 MacPython 中安装 Python 包的信息，参阅 安装额外的 Python 包 部分。

## 4.2. IDE

MacPython 附带标准的 IDLE 开发环境。 有关使用 IDLE 的详细介绍，请访问 http://www.hashcollision.org/hkn/python/idle_intro/index.html 。

## 4.3. 安装额外的 Python 包

有几个方法可以安装额外的 Python 包：

- 可以通过标准的 Python distutils 模式（ `python setup.py install` ）安装软件包。

- 许多包也可以通过 setuptools 扩展或 pip 包装器安装，请参阅 https://pip.pypa.io/ 。

## 4.4. Mac 上的图形界面编程

使用 Python 在 Mac 上构建 GUI 应用程序有多种选择。

PyObjC 是一个 Python 到 Apple 的 Objective-C/Cocoa 框架的绑定，这是大多数现代 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 工具包，可在 Mac OS X 上本机运行。软件包和文档可从 https://www.wxpython.org 获得。

PyQt 是另一种流行的跨平台 GUI 工具包，可在 Mac OS X 上本机运行。更多信息可在 https://riverbankcomputing.com/software/pyqt/intro 上找到。

## 4.5. 在 Mac 上分发 Python 应用程序

放置在 MacPython 3.6 文件夹中的“ Build Applet ”工具适用于在你自己的计算机上打包小型 Python 脚本以作为标准 Mac 应用程序运行。 但是，此工具不够强大，无法将 Python 应用程序分发给其他用户。

在 Mac 上部署独立 Python 应用程序的标准工具是 py2app 。有关安装和使用 py2app 的更多信息，请访问 http://undefined.org/python/#py2app 。

## 4.6. 其他资源

MacPython 邮件列表是 Mac 上 Python 用户和开发人员的优秀支持资源：

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

另一个有用的资源是 MacPython wiki ：

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