PyCharm中执行选中代码需先打开并激活Python Console(View → Tool Windows → Python Console或Alt+F8),再选中代码使用快捷键Ctrl+Shift+E(Win/Linux)或Cmd+Shift+E(macOS),或右键选择“Execute Selection in Console”;该操作将代码送入当前Console命名空间执行,依赖上下文,不自动重放历史定义。

PyCharm 里怎么只运行选中的几行代码?
可以直接执行,但不是靠“右键 → Run”,而是用 Execute Selection in Console(在 Python 控制台中执行选中内容)。这个功能本质是把选中的代码发给当前激活的 Python Console 执行,类似 Jupyter 的 Cell 运行逻辑。
常见错误现象:Run 菜单里找不到对应选项;点了 Run 却整个文件都跑起来了;选中代码后按 Ctrl+Shift+E 没反应——多半是因为没打开 Python Console 或者没激活它。
- 必须先打开 Python Console:菜单栏
View → Tool Windows → Python Console,或快捷键Alt+F8 - 确保 Console 处于焦点状态(点击一下控制台窗口),否则快捷键无效
- 选中代码后,用快捷键
Ctrl+Shift+E(Windows/Linux)或Cmd+Shift+E(macOS) - 也可以右键 →
Execute Selection in Console(注意不是Run)
为什么有时候选中的代码执行结果不显示,或者报 NameError?
因为 Console 是有上下文的:变量、函数定义会累积,但每次执行都是在当前 Console 的命名空间里运行。如果选中的是 print(x),而 x 是前面某段没选中的代码定义的,就会报错。
PyCharm 2026.2是 JetBrains PyCharm 的指定版本安装包,下载地址指向官方 Windows 安装包直链,可用于旧项目兼容、版本回退和环境测试。
- Console 不会自动重放历史输入,只认你手动执行过或已存在的变量
- 函数定义(
def foo():)必须整块选中,包括缩进和冒号后的所有行,否则语法错误 - 如果选中了
import语句,重复执行会导致模块重载,但不会刷新已导入对象的引用 - 想清空上下文?点 Console 工具栏的
Reset Console(循环箭头图标),或执行%reset
和 Debug 的 “Evaluate Expression” 有什么区别?
Evaluate Expression(Alt+F8)是调试时临时求值,不改变 Console 状态,也不记录历史;而 Execute Selection in Console 是真实地把代码送进 Console 执行,会影响后续所有交互。
-
Evaluate Expression可以在断点暂停时访问局部变量,Execute Selection只能访问 Console 全局命名空间 - 选中
for i in range(3): print(i)用 Console 执行会输出三行;用 Evaluate 则只返回None,且不打印 - Evaluate 不支持多行语句(除非写成单行表达式,比如用分号连接),Console 支持完整代码块
有没有办法让选中代码像脚本一样独立运行(不依赖 Console 上下文)?
没有内置等效功能,PyCharm 的设计就是把“选中执行”绑定在 Console 上。如果真需要隔离环境,有两个务实替代方案:
- 把选中代码复制到一个新临时文件(
Ctrl+Alt+Insert新建scratch.py),再正常Run - 用
Python Console的%run -i snippet.py命令(需先保存为文件),-i表示交互式加载,变量会进入当前命名空间 - 别依赖“选中即运行”做核心开发流程——它适合探索、验证、快速试错,不适合逻辑复杂或依赖初始化的代码段
真正容易被忽略的是:Console 默认使用项目解释器,但如果你切换过 Python 解释器(比如改用 conda env),得确认 Console 底部显示的解释器路径和预期一致,否则可能 import 失败或版本错乱。

















