在pycharm中设断点并启动调试:先在代码行号左侧单击添加红点断点,再点击debug按钮(绿色甲虫图标)或右键选择debug运行;程序将停在第一个断点处且该行尚未执行,此时可用f8(步过)、f7(步入)、shift+f8(步出)进行单步调试。

怎么在 PyCharm 里设断点并启动调试
PyCharm 的单步调试不是靠“运行”按钮,而是靠 Debug 按钮(绿色甲虫图标)启动。不点它,哪怕加了断点也不会停——这是新手最常卡住的地方。
操作要点:
- 在代码行号左侧灰色区域单击,出现红点即为断点;支持在函数定义、循环体、
if分支内任意行设置 - 右键文件 →
Debug 'xxx.py',或点击工具栏Debug按钮(不是Run) - 程序运行到第一个断点自动暂停,此时光标所在行尚未执行
- 若没反应,检查右上角运行配置是否选对了脚本路径——常见错误是误用了旧的
Run Configuration,实际调试的是另一个文件
单步执行用哪几个快捷键最实用
断点停住后,真正“单步”的动作全靠快捷键驱动,鼠标点菜单太慢,也容易点错。
核心三键(Windows/Linux 默认,macOS 把 Ctrl 换成 Cmd):
PyCharm 2026.2是 JetBrains PyCharm 的指定版本安装包,下载地址指向官方 Windows 安装包直链,可用于旧项目兼容、版本回退和环境测试。
-
Step Over (F8):执行当前行,但不进入函数内部(比如调用requests.get()就直接跑完,不跳进源码) -
Step Into (F7):强行跳进当前行调用的函数——但如果该函数是 C 扩展(如json.loads)或没有源码,会跳过,不是 bug -
Step Out (Shift+F8):从当前函数里“弹出来”,回到上一层调用处,适合进了太深想快速退出
额外提醒:Resume Program (F9) 是继续运行到下一个断点,不是“单步”,别和 F8 混用。
为什么变量值看不到 / 看不到局部变量
断点暂停后,Variables 面板默认只显示当前作用域的变量,但有时为空或显示 not available,通常不是配置问题,而是以下原因:
- 代码被优化过:如果用了
python -O启动(比如在运行配置里加了-O参数),__debug__被关闭,断点行为异常,变量不可见 - 异步代码中停在回调外:比如在
async def外设断点,但实际执行在 event loop 里,Variables面板可能只显示全局变量 - 调试器未加载符号:纯 Pyd 或 so 扩展模块里的变量天然不可见,PyCharm 不支持 C 层调试
- 检查
Settings → Build, Execution, Deployment → Console → Python Console中 “Use IPython if available” 是否勾选——勾选后调试时变量显示更稳定
调试时改变量值能生效吗
可以,但仅限于当前暂停帧内的可变对象,且有明确边界。
- 在
Variables面板里双击值(如列表、字典、数值),修改后按回车即写入——下次执行该变量时就是新值 - 字符串、整数等不可变类型也能改,但本质是重新绑定变量名,不是“原地修改”
- 不能改函数名、模块名、类定义;也不能通过改
sys.path动态加载新模块——调试器不重启解释器 - 改完记得验证:比如把
count = 5改成10后,按F8下一步,确认逻辑是否按预期走
真正容易忽略的是:改完变量后没按 F8 继续,而是点了 Stop,那所有改动当场丢失——调试器退出即重置状态。










