双击Python脚本时py.exe调用旧版本的原因及调整方法
问题原因与解决办法
为什么会出现这种差异?
Windows里命令行调用和双击文件的程序查找逻辑完全是两回事:
- 命令行输入
py时,系统会按照PATH环境变量的顺序找第一个匹配的py.exe,所以你用的是C:\Windows\py.exe(对应3.10)。 - 双击
.py文件时,系统是靠文件关联机制直接调用预设的程序,你的情况里这个关联指向了C:\Users\Seth\AppData\Local\Programs\Python\Launcher\py.exe(对应3.8),和PATH设置无关,所以改PATH没用。
解决办法
方法1:修复.py文件的关联(彻底换用系统目录的Launcher)
直接把.py文件的默认打开程序改成C:\Windows\py.exe:
- 右键任意
.py文件 → 选择「打开方式」→「选择其他应用」 - 点击「更多应用」→「在这台电脑上查找其他应用」
- 定位到
C:\Windows\py.exe,选中后勾选「始终使用此应用打开.py文件」
或者用命令行快速设置(管理员权限打开CMD):
assoc .py=Python.File ftype Python.File="C:\Windows\py.exe" "%1" %*
方法2:修改当前关联的Launcher默认版本(不换关联)
如果不想改文件关联,直接让用户目录下的py.exe默认用3.10:
- 在你的用户目录
C:\Users\Seth下新建一个py.ini文件 - 写入以下内容:
[defaults] python=3.10
保存后,双击脚本就会自动用3.10版本运行了。
方法3:临时指定脚本的运行版本(适合单脚本设置)
如果只想让某个脚本用3.10运行,可以在脚本第一行加上版本注释:
#! python3.10
这样不管用哪个Launcher打开,都会优先调用3.10版本。
内容的提问来源于stack exchange,提问作者violetsg
相关产品推荐
相关产品推荐

