Windows下py --version与python --version返回版本不同的原因?
Windows下
py与python命令版本差异的原因及解决办法 核心区别:两个命令的版本选择逻辑完全不同
python命令直接遵循系统PATH环境变量的优先级,哪个Python的路径在PATH最顶端,就调用哪个版本——所以你环境变量顶端是3.11,执行python --version返回3.11是完全正常的。py是Windows专属的Python启动器(Python Launcher for Windows)的调用命令,它的版本选择和PATH无关,优先级逻辑是:- 优先读取当前工作目录下的
pyvenv.cfg或.python-version文件指定的版本 - 其次读取用户主目录(
C:\Users\你的用户名)下的.python-version文件 - 最后使用注册表中记录的默认Python版本(通常是你安装时勾选了「Set as default Python」的版本,或者通过
py -0能看到带*标记的版本)
- 优先读取当前工作目录下的
如何验证和调整
- 查看启动器识别的所有版本及默认项:
执行命令py -0,输出里带*的就是当前py命令默认调用的版本(你现在应该是3.9.1带*) - 临时指定版本运行:
如果要临时用3.11,执行py -3.11 --version即可 - 修改
py命令的默认版本:- 最简单的方式:重新运行Python 3.11的安装包,选择「Modify」,确保勾选「Python Launcher for Windows」,并在后续选项中设置为默认版本
- 或者在用户主目录下创建一个
.python-version文件,内容只写3.11,保存后py命令就会默认调用3.11
内容的提问来源于stack exchange,提问作者JeffC
相关产品推荐
相关产品推荐

