
Windows 的 py 启动器默认应调用系统最新 Python,但实际可能因注册表配置滞后而指向旧版本;可通过 py -0p 查看已注册版本,并用 py -3.12 --default 显式设置默认版本。
windows 系统中 `py` 启动器默认应调用系统最新 python,但实际可能因注册表配置滞后而指向旧版本;可通过 `py -0p` 查看已注册版本,并用 `py -3.12 --default` 显式设置默认版本。
在 Windows 上,py 是官方提供的 Python 启动器(Python Launcher for Windows),其设计目标之一就是简化多版本共存环境下的调用——例如无需修改 PATH,仅通过 py -3.12 或 py -3.8 即可精确启动对应版本。但需注意:py(无参数)的行为并不由“系统中安装的最高版本号”自动决定,而是依赖 Windows 注册表中 py 启动器所记录的“默认版本”配置。这解释了为何你观察到:
$ py --version # 输出 Python 3.8.10(当前注册的默认版本) $ python3 --version # 输出 Python 3.12.2(该解释器可能通过其他方式(如直接安装、conda、或手动 PATH 配置)注册为 python3 命令)
✅ 查看所有已注册的 Python 版本
运行以下命令,可列出 py 启动器识别并注册的所有 Python 安装及其路径:
py -0p
典型输出示例:
-V:3.12 * C:\Users\Alice\AppData\Local\Programs\Python\Python312\python.exe -V:3.8 C:\Users\Alice\AppData\Local\Programs\Python\Python38\python.exe
其中 * 表示当前默认版本。若 3.12 未带星号,说明它尚未被设为默认。
✅ 将最新版本设为 py 默认启动项
只需一条命令即可更新注册表中的默认配置(以 Python 3.12 为例):
py -3.12 --default
执行后再次验证:
py --version # 应输出 Python 3.12.2 py -0p # 确认 `*` 已移至 3.12 条目
⚠️ 注意事项:
- 该命令需在 具有写入注册表权限的命令行(普通 CMD/PowerShell 即可,无需管理员权限) 中运行;py 启动器自身管理用户级注册表项(HKEY_CURRENT_USER\Software\Python\Launcher\),不涉及系统级修改。
- 若 py -3.12 报错 Unknown version,请先确认 py -0p 是否列出该版本——未列出说明安装时未勾选“Add Python to PATH”或未启用“Associate files with Python”选项,此时需重新运行 Python 安装程序并勾选对应选项,或手动使用 py -3.12 -m pip install ... 临时调用。
- python3 命令并非 Windows 原生命令,通常由第三方环境(如 Git Bash、WSL、Miniconda 或某些 Python 安装包)提供,与 py 启动器无直接关联,因此二者版本不一致属正常现象。
通过以上步骤,你即可精准控制 py 的默认行为,确保开发脚本(如 py script.py)始终基于期望的 Python 版本运行,兼顾兼容性与现代特性支持。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











