Python Launcher (通常称为 py.exe) 是 Windows 系统自带的一个非常有用的命令行工具,从 Python 3.3 版本开始就随 Python 安装包一同提供了,它的主要作用是简化在 Windows 上运行不同版本 Python 脚本的过程。

Python Launcher 是什么?为什么需要它?
在 Windows 上,你可能会遇到以下情况:
- 多版本共存:同时安装了 Python 2.7, Python 3.8, Python 3.9 等多个版本。
- 命令行混淆:在命令行中直接输入
python,系统不知道该调用哪个版本(通常是最新安装的那个或通过py -0查看到的第一个版本)。 - Shebang 问题:在 Linux/Mac 中,脚本文件第一行的
#!/usr/bin/env python3(Shebang) 可以指定解释器,但 Windows 命令行默认不识别这个。
Python Launcher (py.exe) 就是为了解决这些问题而生的。
- 统一入口:提供一个统一的
py命令来管理所有已安装的 Python 版本。 - 版本选择:通过简单的参数(如
-3,-2)来指定使用哪个 Python 版本运行脚本。 - 脚本关联:允许你直接双击
.py文件,并选择用哪个 Python 版本来执行。
如何检查 Python Launcher 是否已安装?
打开命令提示符 或 PowerShell,输入以下命令:
py --version
如果已安装,你会看到类似 Python 3.9.7 的输出,如果提示 'py' 不是内部或外部命令...,说明它没有被添加到系统环境变量 PATH 中,你可以通过重新运行 Python 安装程序,在 "Modify" (修改) -> "Optional Features" (可选功能) 中确保 "py launcher" 被勾选并安装。

核心命令与用法
查看已安装的 Python 版本
这是使用 Launcher 的第一步,先看看你的系统里有哪些 Python。
# 查看所有已安装的 Python 版本,按优先级排序 py -0P # 或者简写 py -0
输出示例:
-3.9-64 * C:\Users\YourUser\AppData\Local\Programs\Python\Python39\python.exe
-3.8-64 C:\Users\YourUser\AppData\Local\Programs\Python\Python38\python.exe
-2.7-32 C:\Users\YourUser\AppData\Local\Programs\Python\Python27\python.exe
-3.10-64 C:\Users\YourUser\AppData\Local\Programs\Python\Python310\python.exe
-3.9-64:表示 Python 3.9, 64位版本。- 号表示这是默认的 Python 3 版本。
-2表示默认的 Python 2 版本。
指定版本运行脚本
这是 Launcher 最强大的功能。
假设你有一个 hello.py 文件:

# hello.py
import sys
print(f"Hello from Python {sys.version}")
在命令行中运行:
# 使用默认的 Python 3 版本运行 py hello.py # 强制使用 Python 3 运行 (会自动选择最新的 3.x 版本) py -3 hello.py # 强制使用 Python 2 运行 py -2 hello.py # 指定使用特定的主版本号,Python 3.9 py -3.9 hello.py # 指定使用特定的完整版本号,Python 3.9.7 py -3.9-64 hello.py # 注意这里的版本号要和 py -0 的输出完全一致
交互式环境
你也可以使用 Launcher 启动交互式解释器。
# 启动默认的 Python 3 交互式环境 py # 启动 Python 3.9 的交互式环境 py -3.9
传递参数
和直接运行 python 一样,你也可以向 py 传递命令行参数。
# 将 "world" 作为参数传递给脚本 py hello.py world
在 hello.py 中,你可以通过 sys.argv 来获取这个参数:
import sys
print(f"Script name: {sys.argv[0]}")
print(f"Argument 1: {sys.argv[1]}")
配置 Python Launcher
配置主要通过注册表来完成。修改注册表有风险,操作前请务必备份!
打开注册表编辑器:Win + R,输入 regedit,回车。
Python Launcher 的配置主要在以下两个位置:
- HKEY_CURRENT_USER\Software\Python\PythonLauncher
这里的配置只对当前用户生效。
- HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonLauncher
这里的配置对所有用户生效(需要管理员权限)。
常见的配置项:
| 值名称 | 数据类型 | 说明 |
|---|---|---|
CommandLine |
REG_SZ (字符串) |
这是最重要的配置项! 定义了 py 命令的默认行为,默认值通常是 ,它会将所有参数原样传递给选定的 Python 解释器。 |
Debug |
REG_DWORD (DWORD) |
调试标志,设为 1 可以启用更详细的输出,有助于排查问题。 |
NoConsoles |
REG_DWORD (DWORD) |
设为 1 时,运行脚本将不会创建新的控制台窗口(类似 pythonw.exe 的行为)。 |
DefaultVersion |
REG_SZ (字符串) |
核心配置项! 指定默认的 Python 版本,如果你想默认使用 Python 3.10,可以将其值设置为 10。 |
DefaultVersion-x86 |
REG_SZ (字符串) |
指定默认的 32 位 Python 版本,设置为 9。 |
DefaultVersion-amd64 |
REG_SZ (字符串) |
指定默认的 64 位 Python 版本,设置为 10。 |
如何修改默认 Python 版本?
假设你希望 py hello.py 默认使用 Python 3.10,而不是 3.9。
- 打开注册表编辑器。
- 导航到
HKEY_CURRENT_USER\Software\Python\PythonLauncher。 - 在右侧找到
DefaultVersion键。 - 双击它,将数值数据从
9修改为10。 - 点击“确定”。
- 重新打开命令行窗口,然后再次运行
py -0P,你会发现 号已经移动到了 Python 3.10 上。py hello.py就会默认使用 3.10 了。
高级用法:关联 .py 文件
双击一个 .py 文件时,Windows 会根据文件关联来决定用什么程序打开,Python Launcher 会介入这个过程。
- 右键点击
.py文件 -> 打开方式 -> 选择其他应用。 - 在列表中找到并选择 "Python Launcher"。
- 勾选 "始终使用此应用打开 .py 文件"。
- 点击“确定”。
当你双击任何 .py 文件时,系统会调用 Python Launcher,它会弹出一个窗口,让你选择用哪个已安装的 Python 版本来运行这个脚本。
常见问题与最佳实践
问题:py 命令找不到,但 Python 已经安装了。
解决方案: Python 安装时可能没有将 py.exe 所在的目录添加到系统 PATH 环境变量中。
- 找到你的 Python 安装目录(
C:\Users\YourUser\AppData\Local\Programs\Python\Python39\)。 - 将该目录添加到系统的
PATH环境变量中。
最佳实践:
- 为项目指定版本:在项目的
README.md或文档中,明确说明需要使用py -3.9来运行项目脚本,而不是python,这样可以避免因开发者环境 Python 版本不同而导致的 "在我机器上能跑" 问题。 - 使用虚拟环境:这是现代 Python 开发的标准做法,在虚拟环境中,
python命令会指向该环境特定的 Python 版本,py命令主要用于全局管理或启动虚拟环境。py -3.9 -m venv myenv可以用 Python 3.9 创建一个虚拟环境。 - 保持
PATH干净:如果你主要使用py命令,可以考虑将 Python 安装目录(如...\Python39\和...\Python39\Scripts\)从系统PATH中移除,只保留py.exe的路径,这样可以避免python命令的版本混淆问题。
| 功能 | 命令 | 说明 |
|---|---|---|
| 查看版本 | py -0 |
列出所有已安装的 Python 版本 |
| 默认运行 | py script.py |
使用默认 Python 版本运行脚本 |
| 指定版本 | py -3 script.py |
使用最新的 Python 3 版本运行 |
py -3.9 script.py |
使用特定的 Python 3.9 版本运行 | |
| 交互模式 | py |
启动默认 Python 的交互式环境 |
| 配置默认 | 修改注册表 DefaultVersion |
设置 py 命令默认调用的 Python 版本 |
掌握 Python Launcher 能让你在 Windows 上的 Python 开发体验更加顺畅和专业,它是一个小工具,但能解决大问题。
