引言
上一篇我们回答了「为什么学 Python」:解释执行、动态类型、50 万+ 包的生态,以及它的性能软肋。从这一篇开始,我们进入实操——把你的电脑变成能跑 Python 的环境。这是本章 10 篇里最「琐碎」的一篇,但也是后续所有代码能跑起来的前提。
本文面向零基础读者,假设你已经读完第 1 篇、理解了解释器(interpreter)与包(package)这两个词的含义。目标很具体:在 Windows、macOS、Linux 任一平台上安装 Python 3.10 以上版本,理解 PATH(环境变量中的可执行文件搜索路径)、版本共存、python 与 python3 的区别,并完成「验证三连」。读完本文,你应当能在自己的终端敲出 python --version 并看到合理的输出版本号;至于之后的虚拟环境与包管理,分别是第 4、5 篇的任务。
概念与原理
一次「安装」到底装了什么
很多人以为安装 Python 就是得到一个 python.exe,其实一次标准安装包含四部分:
- CPython 解释器本体:即
python可执行文件,负责把源码翻译成字节码(bytecode)并执行——这是第 3 篇的主角,这里先知道它存在; - 标准库(standard library):随解释器一起分发的数百个内置模块,如
sys、os、json、math,这是 Python「开箱即用」的底气; - pip:官方包管理工具,用来从 PyPI 安装第三方包,详见第 5 篇;
- 文档与示例:可选组件,一般用不到。
在 Windows 上还可以选择安装 py 启动器(Python Launcher),它让不同版本的 Python 可以在命令行中共存、按需切换——这是 Windows 官方安装器特意提供的特性,稍后详述。
PATH:为什么敲 python 能找到程序
在终端里敲 python,操作系统做的事情是:在一组预先配置好的目录里逐个查找名为 python 的可执行文件。这组目录记录在环境变量 PATH 中(Windows 与 macOS/Linux 皆是如此,只是分隔符不同,Windows 用分号 ;,macOS/Linux 用冒号 :)。
理解 PATH 能解释几乎所有「命令找不到」的报错(Windows 上提示 'python' 不是内部或外部命令,macOS/Linux 上提示 command not found):要么 Python 没装,要么装了但它的目录没进 PATH。所以安装器的关键勾选项「把 Python 添加到 PATH」(Add Python to PATH)本质是:把解释器所在目录写进系统环境变量。这也是为什么装完后往往需要重新打开终端——终端在启动时读取一次 PATH,新开窗口才会生效。
版本号与多版本共存
Python 版本号分三段:3.12.10 中的 3 是主版本(major,历史上只有 2 和 3)、12 是次版本(minor,新特性在次版本引入)、10 是补丁版本(patch,只修 bug 与安全问题)。语义上要知道两点:次版本之间可能不兼容(比如 3.11 引入的某些优化、3.12 移除的旧特性),而同一次版本内可以放心升级补丁版。多数第三方库声明兼容的最低版本(如「要求 Python 3.9+」),通常意味着次版本号要够大。
多版本共存是真实需求:老项目可能锁定 3.9,新项目用 3.12。三套方案对应三种平台:
- Windows:官方安装器安装多个版本后,用
py启动器管理:py -0列出已安装的全部 Python 版本,py -3.11指定用 3.11 运行脚本,py -3.11 -m pip调用 3.11 的 pip;不带版本号时py按安装顺序自动选一个「默认版本」。该启动器是 Windows 独有的,日常开发甚至可以全程用py代替python——它有统一的入口,天然解决多版本选择问题; - macOS:官方安装器会安装到
/Library/Frameworks/Python.framework并注册独立的python3.12命令,各版本互不干扰; - Linux:发行版包管理器装的多个版本靠命令名区分(
python3.11、python3.12),或用update-alternatives管理默认项。
顺带回答一个高频疑问:装了新版要不要卸载旧版? 不需要。多个大版本并存没有冲突(Windows 有 py 启动器,macOS/Linux 靠命令名区分),第 10 篇之前你只保留一个主用版本即可,版本切换留在以后需要时再说。
三种平台的差异
一句话概括:Windows 上一切皆顺(安装器),macOS 上慎重用系统 Python,Linux 上 Python 往往与系统紧密绑定。
macOS 自带一个由系统组件(command line tools)提供的 python3——注意它可能没有 pip、版本偏旧,而且与系统软件绑定,不要用系统自带版本做开发,也不要卸载它。Linux 同理:Debian/Ubuntu 的软件包管理工具(apt)本身依赖 python3,直接替换系统 Python 可能弄坏系统工具,正确的做法是从软件源安装开发用的 Python 包(见下文)。Windows 则是唯一「不自带 Python」的主流桌面系统——这解释了为什么网上「新手第一次装 Python」的教程绝大多数以 Windows 为例:因为它真的要手动装,而 macOS/Linux 已经有一个「看着像、但不宜用」的预装版本。
操作/实现
请按你的平台执行对应小节,其余小节可以略读。
Windows
方案 A(推荐):官方安装器。 打开 Python 官网下载页(https://www.python.org/downloads/),下载最新的 3.x 安装包(页面上的黄色按钮即是),运行安装器时请务必勾选最下方两项:
[√] Install launcher for all users (recommended)
[√] Add python.exe to PATH
勾选 Add to PATH 后直接点击 Install Now 即可。安装完成后重新打开终端(PowerShell 或 CMD),执行验证三连(见下文)。
方案 B:winget(Windows 包管理器)。 Windows 10/11 自带 winget,可在终端一把装好:
winget install Python.Python.3.12
装完同样重新打开终端再验证。注意 winget 会自动处理 PATH,但当前已打开的终端窗口不会立刻感知。两个方案选其一即可——官方安装器图形化、步骤直观,适合第一次;winget 无需浏览器、可脚本化,适合以后重装。两个都装并不会冲突(会装到同一个位置),但没必要,且容易让自己搞不清「到底哪次装的生效」。
macOS
方案 A(推荐):Homebrew。 如果你已经装了 Homebrew(macOS 社区最流行的包管理器),一条命令搞定:
brew install python@3.12
Homebrew 安装的 Python 在 Apple Silicon 机器上位于 /opt/homebrew/bin,Intel 机器上位于 /usr/local/bin——Homebrew 会提醒你把它加入 PATH,按提示操作即可。
方案 B:官方安装器。 同样访问 https://www.python.org/downloads/ 下载 macOS 安装包,双击按向导安装。它会安装到 /Library/Frameworks/Python.framework,并在 /usr/local/bin 放置 python3、python3.12 等命令的链接,通常无需手动配 PATH。注意官方安装器对 intel/Apple Silicon 有不同的安装包,请下载对应架构版本。
Linux(以 Debian/Ubuntu 为例)
Debian/Ubuntu 的软件源里自带 Python,用 apt 安装:
sudo apt update
sudo apt install -y python3 python3-venv python3-pip
注意三点:一是命令名就是 python3(发行版刻意不提供裸 python,如需可用 sudo apt install python-is-python3 让 python 指向 python3);二是必须顺带安装 python3-venv,因为 Debian 默认不随 Python 提供虚拟环境模块(第 4 篇要用);三是 pip 通过 python3 -m pip 调用。如果你想用更新版本(比如系统源里是 3.10 而你需要 3.12),可以添加 deadsnakes 等第三方 PPA,但这对新手不必要——先跑起来比追求最新版重要。
安装后的通用验证
无论哪个平台,装完后请重新打开终端,执行「验证三连」:
python --version
python -c "print(1 + 1)"
python -m pip --version
本机(Windows,Python 3.12)输出如下,供比对:
Python 3.12.10
2
pip 25.0.1 from C:\Program Files\Python312\Lib\site-packages\pip (python 3.12)
三行分别回答:解释器装好了、解释器能执行代码、pip 可用(注意 --version 显示的 python 3.12 表示这个 pip 属于 3.12 这个解释器)。
若想进一步确认「当前实际用的是哪个解释器」,可以告诉 Python 自己打印安装信息——这个写法在三个平台通用(macOS/Linux 下命令名改 python3 即可):
python -c "import sys, platform; print(sys.executable); print(sys.version.split()[0]); print(platform.system())"
本机输出:
C:\Program Files\Python312\python.exe
3.12.10
Windows
sys.executable 是解释器可执行文件的完整路径——之后凡是遇到「我的 python 到底是哪个」的困惑,第一反应就是打印它。
易错点与陷阱
易错点 1:Windows 安装时漏勾「Add python.exe to PATH」。 现象是装完后终端报 'python' 不是内部或外部命令。补救优先:直接重跑一次安装器,勾上对应项(安装器支持 Modify 修改)。不推荐新手手动编辑 PATH(环境变量对话框里手滑删掉其它路径会引发连锁问题)。另外注意:改完 PATH 后必须新开终端窗口才生效,很多人卡在这一步。
易错点 2:用 pip 而不是 python -m pip。 macOS/Linux 上 pip 与 python 可能不完全对应同一个解释器(尤其装了多个版本或用了系统 Python 时),Windows 上多版本共存时 pip 指向也可能与预期不符。稳妥的通用写法是 python -m pip ...——它保证「用哪个解释器,就用哪个解释器的 pip」。
易错点 3:动系统自带的 Python。 在 macOS/Linux 上直接改、卸、降级系统 Python(比如 macOS 的 /usr/bin/python3,或 apt 依赖的 /usr/bin/python3)可能让系统工具(软件更新、包管理器)罢工。开发用的 Python 与系统 Python 各装各的,互不干扰。
易错点 4:命令名不统一导致的幻觉报错。 Linux 上没有裸 python(要装 python-is-python3 或改用 python3);部分 macOS 系统的 python3 无 pip。遇到「命令找不到」时,先确认命令名是否符合平台惯例,再怀疑 PATH。
易错点 5:下载了与机器不匹配的安装包。 典型是 Apple Silicon(M 系列芯片)Mac 上装了 Intel 版安装器,表现为 python3 命令提示「无法执行」或系统提示架构不兼容(bad CPU type);以及 Windows 上把源码包当安装包用(Windows 没有官方源码编译流程)。对策:下载页会明确标注安装包类型(如 macOS 的「macOS 64-bit universal2 installer」、Windows 的「Windows installer (64-bit)」),对照机器架构选择,不要见按钮就点。
小结
本文完成了环境的落地:讲了「安装 Python」实际安装的四样东西(解释器、标准库、pip、文档),解释了 PATH 为什么让 python 命令可被找到、版本号三段各自语义,以及多版本共存的三种平台方案。实操部分给出 Windows(官方安装器/winget)、macOS(Homebrew/官方安装器)、Linux(apt)的安装命令和「验证三连」。四个易错点集中在:PATH 勾选、python -m pip 通用写法、不动系统 Python、命令名平台差异。现在你的机器已经能运行 Python——下一步(第 3 篇)我们将深入那个 python 命令的背后,看一行代码从源码到输出经历了什么。
练习与思考题
- 完成你所在平台的安装,并执行「验证三连」,把三行输出保存下来。(答案导向:
Python 3.x.y、2、pip x.y.z from ...,版本号 x 应大于等于 10。) - 执行
python -c "import sys; print(sys.executable)",回答:这个路径是否在你的 PATH 里?如何验证?(答案导向:Windows 用where python,macOS/Linux 用which python;若输出的路径与which不一致,说明 PATH 中有多个 Python。) - 思考题:为什么修改 PATH 后需要重新打开终端窗口?(答案导向:终端启动时读取一次环境变量,新进程继承的是启动那一刻的环境。)
- 查一查你安装的 Python 的次版本号尾部是否为偶数补丁(如 3.12.10),并说出次版本与补丁版本在语义上的区别。(答案导向:次版本引入新特性、可能不兼容;补丁只修 bug 与安全,可放心升级。)