怎么在 VS Code 集成终端中快速执行选中的 Python 代码

Chloe
Chloe
发布时间:2026-10-10| 2人浏览过
原创

在编写 Python 脚本或调试数据处理流程时,反复通过右键重新运行整个文件不仅耗费时间,还会丢失当前的内存变量状态。在 VS Code 中,最直接且标准的做法是在编辑器中高亮选中目标代码片段,然后按下快捷键 Shift + Enter。编辑器会自动拉起下方的集成终端,唤起后台 Python 交互式进程,并将选中的代码逐行发送过去立即执行。

操作步骤:三种快速触发方式

在进行任何执行操作前,请确保 VS Code 已打开 .py 脚本,并且窗口右下角已正确识别并绑定了你本机的 Python 解释器(如 Conda 环境或虚拟环境 venv)。接下来可以通过以下三种方式触发选区执行:

  1. 键盘快捷键(推荐方式):使用鼠标拖拽或键盘组合键选中需要执行的一行或多行代码,直接按下键盘上的 Shift + Enter。在 macOS 系统上,默认组合键同样是 Shift + Return。
  2. 右键上下文菜单:选中目标代码块后,在代码区域单击鼠标右键,在展开的菜单中找到并点击“在 Python 终端中运行所选内容/行”(Run Selection/Line in Python Terminal)。
  3. 命令面板(Command Palette):按下 Ctrl + Shift + P(macOS 上为 Cmd + Shift + P),输入 Run Selection,选中并回车确认 Python: Run Selection/Line in Python Terminal。
怎么在 VS Code 集成终端中快速执行选中的 Python 代码
图 1:VS Code 快速执行选中 Python 代码的典型操作步骤流程

底层原理:它是如何与终端交互的?

理解这个操作的底层流程,有助于你在遇到问题时快速排查。当你第一次在代码文件中按下 Shift + Enter 时,VS Code 的 Python 官方扩展(Python Extension)会在后台完成以下两件事:

首先,如果底部终端面板尚未存在活跃的 Python 会话,扩展程序会自动在集成终端中调用你当前选中的解释器路径启动一个 REPL(交互式 Shell,即出现 >>> 提示符的环境)。

随后,VS Code 读取编辑器中所选文本的原始字符串,剥离不必要的外层空格后,逐行“打字注入”到该终端会话中。因为是在同一个 REPL 会话中运行,你先前定义的所有函数、导入的包以及赋值的全局变量,都会驻留在当前会话的内存空间中,后续选中的代码可以直接引用。

怎么在 VS Code 集成终端中快速执行选中的 Python 代码
图 2:编辑器向集成终端发送选区文本的交互与状态驻留关系

具体使用示例

下面通过一个计算列表平均值的简短脚本,演示分段选中的执行过程与预期输出。

假设你在编辑器中有如下代码:

# demo.py
import math

raw_data = [12, 45, 68, 23, 89, 34]
filtered_data = [x for x in raw_data if x > 30]

total = sum(filtered_data)
average = total / len(filtered_data)
print(f"筛选后的平均值: {average}")

第一步:仅选中前三行并执行

用鼠标高亮前 4 行(包括导入模块和过滤列表的代码),按下 Shift + Enter。终端会输出类似于以下内容(视终端类型可能略有差异):

>>> import math
>>> 
>>> raw_data = [12, 45, 68, 23, 89, 34]
>>> filtered_data = [x for x in raw_data if x > 30]
>>> 

第二步:执行后续计算与输出

接着高亮最后三行代码并再次按下 Shift + Enter,终端继续读取并打印最终结果:

>>> total = sum(filtered_data)
>>> average = total / len(filtered_data)
>>> print(f"筛选后的平均值: {average}")
筛选后的平均值: 59.0
>>> 

此时,由于 filtered_data 和 average 已经保存在当前终端的命名空间中,你可以直接把光标点到底部终端里,手动输入 len(filtered_data) 并回车,终端会立即返回 4,不需要再次从头解析脚本。

常见陷阱与注意事项

使用集成终端执行代码片段非常高效,但在某些特定场景下容易产生报错或异常表现,需要特别注意以下细节:

1. 复合语句与缩进块(IndentationError)

Python 标准 REPL 环境对空行和缩进非常敏感。如果选中的代码中包含 for 循环、if/else 分支或 def 函数定义,且选中区域末尾缺失了回车或者包含多余缩进,终端可能会抛出 IndentationError 或处于等待状态(提示符变为 ...)。

排错方案:尽量避免单独切碎代码块中的子句(如只单选 else: 行)。如果必须执行函数或循环,请将定义头至对应缩进结束的完整代码块全部选入后再按 Shift + Enter。

2. 快捷键冲突或失效

有时按下 Shift + Enter 后,终端没有任何反应,或者光标直接换行而没有将内容传送到终端。这通常是由于快捷键绑定被其他扩展(如 Jupyter、Vim 或自定义键盘映射)接管覆盖所致。

检查与修复方式如下:按下 Ctrl + K 然后按 Ctrl + S 打开键盘快捷方式设置面板,在上方搜索框中检索命令名称 python.execSelectionInTerminal。检查其绑定的按键是否为 shift+enter。如果被冲突占用,双击该项重新赋予你习惯的快捷键组合即可。

怎么在 VS Code 集成终端中快速执行选中的 Python 代码
图 3:选区执行常见问题表现与排查对照

3. 执行环境与多终端窗口混淆

VS Code 允许同时开启多个不同类型的终端窗口(如 Bash、PowerShell、zsh 或纯 CMD)。选区执行默认会发送给由 Python 插件管理的默认交互式终端。如果你手动在另一个终端 Tab 中切换了不同的虚拟环境目录,选区代码仍然会被推送到绑定了 Python 扩展的那个会话中。如果出现模块缺失(ModuleNotFoundError),请核对当前承载 REPL 的终端所加载的环境与编辑器右下角显示的环境是否完全一致。

选区执行与完整运行的选型对比

在日常开发中,直接运行整个脚本文件与选区运行各有适用的工作场景。根据具体的任务类型选择最合适的执行机制,可以显著提升编码效率:

对比维度 选区执行 (Shift + Enter) 运行整个文件 (Run Python File)
核心机制 将代码片段打入现存的 REPL 交互进程 冷启动全新的 Python 独立解释器进程
变量生命周期 驻留内存,供后续片段随时调用调试 执行完毕后进程立即退出,所有变量销毁
反馈速度 毫秒级即时反馈,省去模型加载与初始化时间 每次必须重新载入所有依赖包和初始化数据
适合场景 数据探索、参数微调、复杂函数逻辑验证 正式全量测试、批处理流水线、交付验证
怎么在 VS Code 集成终端中快速执行选中的 Python 代码
图 4:在 VS Code 集成终端中快速执行 Python 代码的核心规范总结

掌握利用集成终端快速执行选区代码的方法后,不仅可以跳过繁琐的控制台指令输入,还能在不引入额外外部重量级工具的前提下,获得接近 Jupyter Notebook 的轻量交互式调试体验。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。