5. 在 Mac 上使用 Python

作者:

Bob Savage <bobsavage@mac.com>

在运行 macOS 的 Mac 上的 Python 原则上与其他任何 Unix 平台上的 Python 非常相似,但有一些额外的功能,例如集成开发环境 (IDE) 和包管理器,值得指出。

5.1. 获取和安装 Python

macOS 曾经在 10.8 到 12.3 版本之间预装了 Python 2.7。您可以从 Python 网站 安装最新版本的 Python 3。在那里可以找到当前的“通用 2 二进制”版本的 Python,它可以在 Mac 的新 Apple Silicon 和旧的 Intel 处理器上原生运行。

安装后,您将获得以下内容

  • 在您的 Applications 文件夹中有一个 Python 3.12 文件夹。在这里,您会找到 IDLE,它是官方 Python 发行版中标准的开发环境;以及 Python 启动器,它处理从 Finder 双击 Python 脚本。

  • 一个框架 /Library/Frameworks/Python.framework,其中包含 Python 可执行文件和库。安装程序将此位置添加到您的 shell 路径。要卸载 Python,您可以删除这三项。一个指向 Python 可执行文件的符号链接被放置在 /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 包含一个帮助菜单,允许您访问 Python 文档。如果您完全不熟悉 Python,您应该从该文档中的教程介绍开始阅读。

如果您熟悉其他 Unix 平台上的 Python,您应该阅读有关从 Unix shell 运行 Python 脚本的部分。

5.1.1. 如何运行 Python 脚本

在 macOS 上开始使用 Python 的最佳方法是通过 IDLE 集成开发环境;请参阅部分 IDE,并在 IDE 运行时使用帮助菜单。

如果你想从终端窗口命令行或 Finder 运行 Python 脚本,首先需要一个编辑器来创建你的脚本。macOS 附带了一些标准的 Unix 命令行编辑器,vimnano 就是其中两个。如果你想要一个更像 Mac 的编辑器,BBEdit 来自 Bare Bones Software(参见 https://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

  • 选择 Python Launcher 作为打开你的脚本(或任何 .py 脚本)的默认应用程序(通过 Finder 信息窗口),然后双击它。 Python Launcher 有各种首选项来控制你的脚本是如何启动的。按住 Option 键拖动可以更改一次调用时的这些设置,或者使用它的首选项菜单全局更改这些设置。

5.1.2. 使用 GUI 运行脚本

在旧版本的 Python 中,有一个 macOS 特性你需要注意:与 Aqua 窗口管理器通信的程序(换句话说,任何有 GUI 的程序)需要以特殊的方式运行。使用 pythonw 而不是 python 来启动此类脚本。

在 Python 3.9 中,你可以使用 pythonpythonw

5.1.3. 配置

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

有关安装 Python 包的更多信息,请参见 安装额外的 Python 包 部分。

5.2. IDE

Python 附带标准的 IDLE 开发环境。可以在 https://www.hashcollision.org/hkn/python/idle_intro/index.html 找到关于使用 IDLE 的良好介绍。

5.3. 安装额外的 Python 包

本节已移至 Python 打包用户指南

5.4. GUI 编程

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

PyObjC 是对 Apple 的 Objective-C/Cocoa 框架的 Python 绑定,它是大多数现代 Mac 开发的基础。有关 PyObjC 的信息,请访问 pyobjc

标准的 Python GUI 工具包是 tkinter,它基于跨平台的 Tk 工具包 (https://www.tcl.tk)。Apple 在 macOS 中捆绑了 Tk 的 Aqua 原生版本,最新版本可以从 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.pythonlang.cn/community/sigs/current/pythonmac-sig/

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

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