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 命令行编辑器,vim 和 nano 就是其中两个。如果你想要一个更像 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 中,你可以使用 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 开发环境。可以在 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。