Windows和macOS怎么在命令行查看Python版本
详细介绍在Windows和macOS系统下通过命令行查看Python版本的具体方法,涵盖核心命令、执行机制差异、路径排查以及常见报错解决方案。
在 Windows 和 macOS 的命令行中查看 Python 版本,核心指令是执行 python --version 或 python3 --version(大写参数 -V 为对应缩写)。由于两个操作系统的设计理念与软件生态演进不同,实际操作存在关键差异:Windows 推荐使用官方随附的专属启动器 py --version,以规避系统应用别名拦截;macOS 自 12.3 版本彻底废弃内置 Python 2 后,则必须明确指定 python3。本文将按实际操作流程,完整讲解两套平台下的具体执行步骤、输出解读、机制差异与高频报错排查方法。
一、Windows 系统在命令行查看 Python 版本
在 Windows 系统中,命令行查看 Python 版本主要分为“打开命令行窗口”与“键入版本查询命令”两个环节。针对 Windows 多版本共存以及容易误触微软应用商店的特性,官方提供了专用启动器工具。
1. 打开 Windows 命令行终端
Windows 提供了多种终端工具,无论使用哪一种均可完成版本检测:
- CMD 命令提示符:按下键盘快捷键
Win + R,在弹出的“运行”对话框中输入cmd,按下回车键。 - PowerShell / Windows Terminal:按下
Win + X组合键,在快捷菜单中选择“终端”或“Windows PowerShell”。
2. 输入查看命令与结果解读
打开终端后,建议优先使用 Windows 独有的 Python Launcher 启动器 命令。如果在安装 Python 时勾选了默认配置,该启动器会自动安装到系统目录中:
你也可以使用常规命令进行查看。若环境变量已经正确配置,将直接返回对应版本号:
-V 或完整写法 --version。如果在命令行中输入小写 python -v,含义会完全改变,系统将启动 Python 并开启详细跟踪模式(verbose mode),屏幕上会疯狂刷屏输出解释器加载模块的底层日志,而非直接显示版本。
3. 查看所有已安装的 Python 版本
在 Windows 上往往会因为开发需求安装多个 Python 版本(如同时安装了 3.10 和 3.12)。使用 py 启动器的列表参数可以一次性查看机器上登记的所有版本及路径:
二、macOS 系统在命令行查看 Python 版本
macOS 建立在 Unix 核心之上,其命令行环境(默认为 Zsh)的调用规范与 Windows 存在显著差别。在 macOS 下检测版本,核心在于明确区分“历史残留的 python”与“现代使用的 python3”。
1. 打开 macOS 终端
可以通过以下方式快速唤出系统终端:
- 聚焦搜索(推荐):按下
Command + 空格键呼出聚焦搜索框,输入Terminal或终端,按下回车键。 - 访达前往:打开“访达(Finder)”→ 进入“应用程序”文件夹 → 展开“实用工具”子目录 → 双击打开“终端”。
2. 输入查看命令与结果解读
在终端窗口中,必须显式键入包含数字 3 的命令:
3. 为什么在 macOS 上不能直接输入 python?
许多初学者习惯性在终端键入 python --version,但在现代 macOS(macOS Monterey 12.3 及更新版本)上,通常会收到类似如下的错误反馈:
出现该现象的原因是:苹果在早期的 macOS 系统中曾将 Python 2.7 作为系统脚本支持组件内置,对应指令就是 python。随着 Python 2 在 2020 年正式停止维护,苹果在 macOS 12.3 中彻底删除了系统预装的 Python 2 运行库。现代 macOS 遵循 PEP 394 规范,避免将无后缀的 python 随意绑定到某个版本,因此所有现代 Python 3 环境统一要求显式调用 python3。
4. 定位解释器的实际物理路径
macOS 上的 Python 3 来源可能有很多种,例如 Xcode 命令行开发者工具内置版、通过官方 PKG 安装包安装的版本,或是通过 Homebrew 包管理器安装的版本。通过 which 命令可以快速定位当前终端执行的具体文件路径:
三、两套系统调用机制与核心差异对比
很多开发者在跨平台工作时容易感到困惑:为什么在 Windows 上既可以输入 py 又可以输入 python,而在 macOS 上却必须输入 python3?两者的核心差异在于操作系统的可执行文件查找机制以及多版本管理策略。
1. 命名规范与标准演进(PEP 397 vs PEP 394)
在 Unix/macOS 环境下:系统严格遵循 PEP 394 规范。由于历史原因,Unix 系统中大量的遗留自动化脚本可能硬编码依赖 Python 2 的语法。为了防止盲目升级导致系统关键工具崩溃,社区规范明确约定:python2 指向 Python 2.x,python3 明确指向 Python 3.x,而没有数字后缀的 python 命令不应当随意重定向。现代系统倾向于直接不提供 python 别名,强制开发者根据项目需求显式指定。
在 Windows 环境下:Windows 原生并没有历史系统脚本依赖 Python 的包袱,但 Windows 面临着更为复杂的多版本并存管理和环境变量污染难题。为此,Python 官方核心团队专门为 Windows 平台起草了 PEP 397,推出了名为 py.exe 的专用启动器。该程序默认部署在 C:\Windows 目录下(该目录始终位于系统全局 PATH 中),它可以直接读取 Windows 注册表中的 Python 安装记录,根据用户的命令行参数或 Python 脚本头部的 Shebang 声明(如 #!python3.11),智能匹配并分发到最合适的解释器。
2. 多版本切换体验的差异
这种底层架构设计直接决定了两个平台在切换或指定不同版本时的操作逻辑:
- Windows:无需修改复杂的环境变量,只需在启动器后加入版本代号。例如查看 3.11 版本的具体版本号,只需运行
py -3.11 -V;查看 32 位版本可运行py -3.11-32 -V。 - macOS:通常依赖版本别名或独立的版本管理工具(如 Homebrew 或 pyenv)。若通过 Homebrew 安装了对应版本,终端会直接生成带次版本号的软链接,例如通过
python3.11 -V或python3.12 -V分别检查。
四、常见问题排查与避坑指南
在实际输入命令的过程中,许多读者会遇到命令无响应、报错未找到或弹出异常界面的情况。以下列举并解决最为高频的几类问题。
1. Windows 输入 python 后自动弹出微软应用商店(Microsoft Store)
具体表现:在 CMD 或 PowerShell 中输入 python 或 python --version,终端没有输出任何文字,而是直接弹出了 Microsoft Store 的 Python 下载详情页。
根源解释:从 Windows 10(1903 版本)起,微软在系统中内置了一套“应用执行别名(App Execution Aliases)”机制,并在用户的 AppData\Local\Microsoft\WindowsApps 目录下放置了 0 字节的 python.exe 和 python3.exe。该目录默认会被加到系统 PATH 变量中。当用户未安装官方 Python,或者安装了官方 Python 但该目录在 PATH 中的排位位于真实安装目录之前时,系统就会先命中微软的应用别名,从而触发应用商店弹窗。
解决办法(任选其一即可):
- 直接改用启动器:改用
py --version,完全绕过应用别名干扰。 - 关闭应用执行别名:按下
Win + S搜索“管理应用执行别名”(或在系统“设置”→“应用”→“高级应用设置”中找到),在列表中找到“应用安装程序 (python.exe)”与“应用安装程序 (python3.exe)”,将其右侧的开关切换为“关”。 - 修复 PATH 变量:使用
where python查看路径顺序,确保真实的 Python 安装目录(如...\Python312\)排在WindowsApps之前。
2. 提示“不是内部或外部命令”或“command not found”
具体表现:Windows 提示 'python' 不是内部或外部命令,也不是可运行的程序;macOS 提示 zsh: command not found: python3。
排查与修复:这表明系统的环境变量 PATH 中完全找不到对应的可执行文件。
- Windows:若已经下载安装过 Python,通常是安装时漏勾了“Add python.exe to PATH”。可以重新双击运行 Python 安装包,点击“Modify(修改)”,在高级选项中勾选“Add Python to environment variables”,完成更新后重新打开命令行窗口即可生效。
- macOS:若提示
command not found: python3,说明本机尚未配置任何 Python 3 环境。可在终端运行xcode-select --install安装包含基础 Python 工具链的命令行工具;或前往 Python 官方网站 下载适用于 macOS 的官方 PKG 安装包进行图形化安装。
3. 不小心只输入了 python,命令行卡在 >>> 怎么办?
具体表现:命令行光标换行后变成了三个大于号 >>>,后续输入任何命令都提示语法错误,无法回到普通命令行。
原因解释:这是因为在输入命令时遗漏了参数 --version 或 -V,命令行把你的输入当成了直接启动 Python 交互式解释器(REPL)。>>> 表示当前正等待输入 Python 代码,而不是操作系统的 Shell 命令。
退出方式:
- 输入退出函数:直接键入
exit()并按下回车。 - 使用快捷键:Windows 系统下按下
Ctrl + Z然后按下回车;macOS 系统下直接按下组合键Ctrl + D。
五、全平台常用命令速查对照表
为方便日常快速查阅,下表整理了 Windows 与 macOS 在版本检查、路径跟踪以及多版本管理中最核心的常用命令对照:
| 操作目标 | Windows 命令行规范 | macOS 终端规范 | 关键注意事项 |
|---|---|---|---|
| 检查默认版本 | py --version 或 python --version |
python3 --version |
参数 -V 必须大写,小写为调试输出 |
| 定位解释器本体路径 | where python 或 where py |
which python3 |
用于排查多个同名文件命中先后顺序 |
| 查看所有可用版本 | py -0p |
type -a python3 或 which -a python3 |
Windows 启动器会以星号 * 标注当前默认解释器 |
| 调用特定次版本 | py -3.11 -V |
python3.11 -V |
针对多版本并存的开发测试场景 |
| 退出交互终端(REPL) | exit() 或 Ctrl+Z 回车 |
exit() 或 Ctrl+D |
当遗漏版本参数误进入 >>> 提示符时使用 |
py --version,它天然免疫微软应用商店的别名劫持,且具备强大的多版本调度能力;在 macOS 上养成始终敲击 python3 --version 的习惯,严格遵循 POSIX 规范,即可确保在任何现代终端环境中均能准确、快速地获取当前 Python 的真实版本。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













