VS Code指定Python解释器后仍用旧版本执行脚本求助
这种单个代码单元运行正常、批量执行(Ctrl-Alt-N)却跑偏到Python 2.7的情况,大概率是快捷键绑定或扩展配置的问题,我给你几个排查和解决的具体方向:
检查快捷键对应的运行命令
很多时候Ctrl-Alt-N可能绑定的不是VS Code官方Python插件的「运行所有单元格」命令,而是第三方扩展(比如Code Runner)的运行指令。你可以按Ctrl+Shift+P打开命令面板,输入「Keyboard Shortcuts: Open Keyboard Shortcuts」,搜索快捷键Ctrl+Alt+N,看它绑定的是python.runAllCells(官方插件的命令)还是code-runner.run这类第三方命令。如果是后者,要么改成绑定官方的python.runAllCells,要么去配置第三方扩展的解释器路径。配置第三方扩展的解释器(如果用了Code Runner)
如果你依赖Code Runner批量运行代码,它默认可能调用系统全局的Python。打开设置(Ctrl+,),搜索「Code-runner: Executor Map」,点击「Edit in settings.json」,找到python对应的条目,把路径改成你指定的目标解释器,比如:"code-runner.executorMap": { "python": "/path/to/your/target/python/interpreter" }确认工作区的Python解释器配置
全局配置和工作区配置可能存在冲突,优先看工作区的设置。按Ctrl+Shift+P输入「Preferences: Open Workspace Settings (JSON)」,检查里面的python.defaultInterpreterPath是否准确指向你选中的解释器,比如:"python.defaultInterpreterPath": "/usr/bin/python3.9"确保这个路径和状态栏显示的完全一致。
检查代码中的shebang行
如果你的代码开头写了#!/usr/bin/env python,部分系统里python默认指向2.7,会导致批量运行时调用错误解释器。把它改成#!/usr/bin/env python3,或者直接写目标解释器的绝对路径,比如#!/usr/local/bin/python3.9。单个运行时VS Code可能会忽略shebang,但批量执行时会遵循这个指定。重置Python插件状态
偶尔插件缓存会出问题,你可以按Ctrl+Shift+P输入「Python: Restart Language Server」重启插件,或者关闭VS Code后删除工作区下.vscode文件夹里的临时文件,再重新打开VS Code指定解释器试试。
内容的提问来源于stack exchange,提问作者Yeahprettymuch

