You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code选中代码按Shift+Enter运行报NameError的原因及解决方法

问题出现原因

VS Code中Shift+Enter运行选中代码的默认逻辑,是将选中内容提交给新启动的Python解释器进程执行,执行完成后进程会直接销毁,内存中存储的所有变量、导入的包都会被清空。
你整体运行脚本时,三行代码在同一个Python进程中按顺序执行,x变量提前完成了赋值,所以运行正常;单独选中print(x)运行时,新启动的Python进程没有执行过import numpy as np和x = np.arange(5)两行代码,自然找不到x的定义,抛出NameError。

解决方法
  • 选中全量依赖代码运行:如果要运行某段代码,选中包含所有前置依赖的完整代码块再按Shift+Enter,比如要运行print(x)就同时选中前三行代码,保证所有依赖的变量都在当前进程中完成赋值。
  • 启用持久化交互终端:先在VS Code的终端中启动Python交互环境(输入python或python3调出>>>提示符),之后按Shift+Enter运行选中代码时,内容会提交到这个持续运行的交互进程中执行,只要你提前运行过前两行赋值代码,后续单独运行print(x)就不会报错。
  • 使用Jupyter单元格拆分模式:安装VS Code的Jupyter扩展后,在.py文件中用# %%标记拆分代码单元格:
# %% 第一个单元格:初始化变量
import numpy as np
x = np.arange(5)

# %% 第二个单元格:打印输出
print(x)

每个单元格可以单独按Shift+Enter运行,所有单元格共享同一个Jupyter内核进程,之前运行生成的变量会一直保留,不需要重复执行前置代码。

内容的提问来源于stack exchange,提问作者Python

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 16:24:00