Windows 上 py 和 python 显示不同版本的原因
·
Windows 上 py 和 python 显示不同版本的原因
在 Windows 命令行中,输入 py --version 和 python --version 却得到两个不同版本,这是很多开发者都会遇到的困惑。
根本原因
py 和 python 是两个完全不同的命令:
- py 是 Windows 官方的 Python 启动器。它会自动识别系统中所有已安装的 Python 版本,并默认使用最新版本。你可以通过
py -3.10或py -3.8来指定具体版本。 - python 则是直接调用系统 PATH 环境变量中第一个找到的
python.exe。它并不关心你安装了多少个版本,只执行排在最前面的那个。
简单来说,py 负责版本管理,python 则完全依赖 PATH 的顺序。
你的具体情况
根据你提供的诊断结果:
py --list显示系统中存在 3.10(默认)、3.9 和 3.8 三个版本。where python指向C:\Users\11390\application\python\python.exe,这是一个 Python 3.8 的安装目录。- 该目录被添加到了 PATH 环境变量中,导致直接输入
python时总是调用 3.8 版本。
而 py 启动器不受 PATH 影响,因此能正确使用最新版本。
解决办法
以下是几种实用方案,根据你的需求选择即可。
方案一:统一使用 py 命令(最推荐)
以后直接用 py 代替 python,这是最干净的做法:
py # 默认使用最新版本(当前为 3.10)
py -3.10 # 指定使用 3.10
py -3.8 # 指定使用 3.8
py -m pip install 包名
方案二:修改 PATH,让 python 指向新版本
如果你希望直接输入 python 时也能使用 3.10,可以调整环境变量顺序:
-
先执行命令查看 3.10 的真实路径:
py -3.10 -c "import sys; print(sys.executable)" -
将 Python 3.10 的目录(通常在
AppData\Local\Programs\Python\Python310)和它的Scripts文件夹,添加到系统 PATH 的最前面。 -
重启命令行窗口即可生效。
方案三:通过 py.ini 设置默认版本
想让 py 命令默认固定使用某个版本,可以创建配置文件:
在路径 C:\Users\你的用户名\AppData\Local 下新建文件 py.ini,内容如下:
[defaults]
python=3.10
保存后,py 将默认启动 3.10 版本。
方案四:使用虚拟环境(项目推荐做法)
对于具体开发项目,建议为每个项目创建独立虚拟环境:
py -3.10 -m venv 项目名
cd 项目名
Scripts\activate
这样可以为不同项目锁定不同 Python 版本,避免全局冲突。
方案五:移除不再需要的旧版本
如果确认不再使用 Python 3.8,可以直接从 PATH 中删除 C:\Users\11390\application\python 这个路径。这样 python 命令就会自动指向其他版本。
根据使用习惯选择合适方案即可。大多数情况下,统一使用 py 命令 已经能很好地解决多版本管理问题。

更多推荐



所有评论(0)