Windows下怎么查Python版本?py命令与Python命令详解
在Windows系统下查看Python版本的常用方法与深度解析。详细拆解python命令与py命令的底层机制、多版本共存检索、环境变量配置及常见报错排查。
在 Windows 环境下查看已安装的 Python 版本,最直接的方式是在命令提示符(CMD)或 PowerShell 中执行 python --version 或 py --version。然而,很多用户在实际操作时经常遇到输入 python 毫无反应、弹出微软应用商店,或者安装了多个版本却不知道当前到底调用了哪一个的情况。本文将清晰拆解 Windows 下查看 Python 版本的具体步骤,并深入分析 python 与 py 这两个命令的本质区别、运行机制以及多版本管理的实用技巧。
一、Windows 下查看 Python 版本的快速操作
查看当前系统生效的 Python 版本,核心操作只需两步:打开终端并运行版本查询命令。
- 打开终端:按下键盘上的
Win + R快捷键,在运行窗口中输入cmd或powershell并回车;也可以在任务栏开始菜单图标上右键,选择“终端”或“PowerShell”。 - 输入查询命令:在控制台光标处输入以下任一命令并回车:
python --version
参数也可以简写为大写字母 -V:
python -V
Python 3.11.8
如果在执行上述命令时,系统提示“'python' 不是内部或外部命令,也不是可运行的程序”,或者屏幕突然弹出了 Windows 应用商店页面,请立即改用 Windows 专有的启动器命令:
py --version
该命令同样支持简写 py -V。在绝大多数标准安装的 Windows 系统中,py 命令无需手动配置环境变量即可直接生效。
二、为什么会有两个命令?python 与 py 的本质区别
很多初学者以为 py 只是 python 命令的一个简写别名,实际上两者的底层原理和定位有着本质区别。
1. python 命令:针对具体可执行程序的直接调用
python 命令代表的是操作系统对名为 python.exe 的可执行文件的直接调用。在 Windows 控制台中键入 python 时,系统遵循标准的程序查找规则:
- 首先在当前工作目录下查找是否存在
python.exe; - 如果当前目录不存在,系统将依次遍历环境变量
PATH中所登记的所有文件夹路径; - 一旦在某个目录中找到
python.exe,系统立即加载并启动该程序,检索终止; - 若遍历完
PATH中的全部目录依然未找到,系统即抛出找不到可执行文件的错误。
这意味着 python 命令的高度依赖 PATH 环境变量。如果你同时安装了 Python 3.10 和 Python 3.12,系统只会运行在 PATH 列表中排列更靠前的那一个,无法通过原生 python 命令快速切换。
2. py 命令:Windows 专有的 Python 启动器(Python Launcher)
py 命令对应的程序实体是 Python Launcher for Windows(程序名为 py.exe)。它是 Python 官方从 3.3 版本开始引入、专门针对 Windows 系统设计的多版本管理与分发调度工具(遵循 PEP 397 规范)。
与 python.exe 存放在具体版本目录不同,py.exe 在安装时通常默认直接放置在 C:\Windows\ 或其他系统级内置路径下。因此无论你是否勾选了“添加环境变量”,py 命令都能直接被系统终端捕获。
更关键的是,py 并不直接充当解释器,而是一个调度中枢。它通过读取 Windows 系统注册表中记录的所有 Python 安装信息,能够感知本机安装的每一个 Python 实例,并允许用户通过参数自由指定唤醒哪一个版本。
三、深入掌握 py 命令:多版本探测与精准调用
当你的电脑上因为不同项目需求,同时安装了多个 Python(例如 Python 3.9、Python 3.11 和 Python 3.12),py 命令能发挥非常关键的作用。
1. 查看本机已安装的所有 Python 版本(py -0)
执行以下命令,可以快速列出系统中所有被注册感知的 Python 版本:
py -0
或者使用完整参数格式:
py --list
Installed Pythons found by py Launcher for Windows
-3.12-64
-3.11-64 *
-3.9-64
在上述输出中,每一行代表一个已安装的 Python 实例。版本号后面的 * 号表示当前系统的默认版本。当你在命令行中只输入 py 而不加版本参数时,系统就会默认调用该带星号的版本。
2. 查看各版本的绝对物理安装路径(py -0p)
很多时候我们需要知道某个 Python 具体安装在哪个磁盘路径(例如配置 IDE 解释器或查找 site-packages 目录)。只需在 -0 后加上字母 p(即 paths):
py -0p
或者使用等效全称:
py --list-paths
Installed Pythons found by py Launcher for Windows
-3.12-64 C:\Users\Username\AppData\Local\Programs\Python\Python312\python.exe
-3.11-64 * C:\Program Files\Python311\python.exe
-3.9-64 C:\Python39\python.exe
3. 指定版本查询或运行程序
掌握了系统中的版本后,你可以直接使用连字符加版本号的形式,指定使用任意特定版本来查验信息或执行脚本:
- 查特定版本号:
py -3.9 --version(即使默认是 3.11,也能准确打印出 3.9 的具体子版本) - 使用指定版本执行脚本:
py -3.12 main.py - 针对特定版本安装第三方库:
py -3.10 -m pip install requests - 指定系统架构位数:若同时安装了 32 位与 64 位的 Python 3.10,可通过
py -3.10-32或py -3.10-64精准区分。
四、常见问题排查:为什么输入 python 会报错或打开微软应用商店?
在 Windows 上排查 Python 版本时,读者最常遇到的两类异常情况,其原因与解决方案如下:
1. 报错“'python' 不是内部或外部命令”
原因:在最初安装 Python 时,安装向导第一页最下方的 Add python.exe to PATH(将 Python 添加到系统环境变量)复选框默认是没有勾选的。未勾选时,系统的命令检索链路上不存在 Python 的路径。
应对措施:
- 临时解决:优先直接改用
py --version,只要安装了官方 Python,启动器必然可以执行; - 彻底解决:重新运行 Python 安装包,点击“Modify(修改)”,在高级选项中补选“Add Python to environment variables”;或手动在“系统属性 -> 环境变量 -> 用户变量 Path”中添加 Python 安装目录及 Scripts 目录。
2. 输入 python 后直接弹窗打开 Microsoft Store(应用商店)
原因:Windows 10 和 11 系统预设了一套名为“应用执行别名(App execution aliases)”的机制。在系统环境变量中,默认包含了一个指向 %LOCALAPPDATA%\Microsoft\WindowsApps 的路径。当系统未检测到真实的 Python 解释器时,该目录下的零字节占位符程序会拦截 python 命令,并强制引导用户前往应用商店下载由微软打包的 Python。
彻底关闭方法:
- 打开 Windows 系统“设置”;
- 依次进入“应用” -> “高级应用设置” -> “应用执行别名”(在部分 Windows 10 版本中位于“应用和功能” -> “应用执行别名”);
- 在别名列表中找到名称为 “应用安装程序” 且对应
python.exe与python3.exe的开关项; - 将其状态从“开”切换为“关”。
关闭后重新打开一个终端窗口,原本的系统级劫持便会失效。
五、命令选用与虚拟环境中的使用建议
综合以上机制分析,在 Windows 日常开发中,推荐遵循以下使用模式:
1. 全局环境探测与版本调度:优先使用 py。无需关心当前控制台的 PATH 优先权,通过 py -0p 可以看清全局格局,通过 py -3.11 可以稳定指定目标解释器,避免因安装顺序不同导致的解释器错乱。
2. 激活虚拟环境(venv)后:直接使用 python。当你通过 .\venv\Scripts\activate 激活了项目独立的虚拟环境后,激活脚本会自动将当前虚拟环境的 Scripts 路径置于系统 PATH 的最前端。此时执行 python 命令会精确指向该虚拟环境专属的解释器;而如果此时执行 py,由于 py 默认去检索全局注册表,反而可能跳出虚拟环境执行全局 Python。
六、常用命令速查对照表
最后,将 Windows 下常用的 Python 查询与调度命令整理如下表,方便日常查阅:
| 操作目标 | 推荐执行命令 | 适用场景与关键说明 |
|---|---|---|
| 查询当前默认版本 | python --version 或 py --version |
快速验证基础环境是否就绪;参数支持大写 -V |
| 查看所有已安装版本 | py -0 |
列出注册表中全部版本,带 * 的为默认项 |
| 查看所有版本及物理路径 | py -0p |
输出所有 Python 的 python.exe 完整磁盘路径 |
| 以特定版本查询或运行 | py -3.10 -V / py -3.10 script.py |
无需切换环境变量,直接唤醒指定的次版本 |
| 为特定版本独立安装第三方库 | py -3.11 -m pip install 包名 |
防止全局多版本时 pip 命令装错目录的推荐写法 |
| 创建基于特定版本的虚拟环境 | py -3.10 -m venv myenv |
确保新建的虚拟环境继承指定 Python 版本的核心解释器 |
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













