VSCode终端运行Python代码报变量未定义 点击运行按钮正常
问题成因
核心原因是VSCode内置终端中执行python命令时,默认调用的是Python 2解释器,和编写代码使用的Python 3版本不匹配:
- Python 2的
input()函数会把用户输入的内容直接当作Python表达式解析执行,你输入ted时,解释器会默认这是个变量名,找不到对应变量就抛出NameError。 - Python 3重写了
input()逻辑,所有用户输入都会被直接转为字符串返回,不会做代码层面的解析,自然不会触发这类报错。
点击VSCode右上角的「运行代码」按钮是Code Runner插件的功能,它会直接读取VSCode里配置好的默认Python 3解释器路径执行代码,不会走终端里的python命令映射,所以运行不会出错。
可以先在终端执行python --version确认,如果输出是Python 2.x版本,就能坐实这个问题。
解决方法
任选一种方案就能修复:
- 临时快速解决:终端跑代码的时候把
python换成python3,比如执行python3 hello.py,直接调用Python3解释器运行文件。 - 永久修改命令映射,让
python默认指向Python3:- Windows:打开系统环境变量设置,把Python3的安装路径、对应的Scripts文件夹路径挪到Path变量的最前面,同时去「应用执行别名」里关掉Python2的相关别名,重启终端后生效。
- macOS/Linux:编辑当前用的shell配置文件(zsh对应
~/.zshrc,bash对应~/.bashrc),加一行alias python='python3',保存后执行source 对应配置文件路径重载配置就可以。
- 用VSCode官方Python扩展的运行功能:先在VSCode命令面板里选好要使用的Python3解释器,之后右键代码文件选「在终端中运行Python文件」,扩展会自动激活对应环境、调用匹配版本的解释器执行,不用手动处理命令映射的问题。
内容的提问来源于stack exchange,提问作者Nej
相关产品推荐
相关产品推荐

