讲师中心 微信公众号
AI工具推荐 视频效率加速

PyCharm快速入门:怎么调试(Debug)单步执行代码

夜磊姑娘_4827

夜磊姑娘_4827

发布时间:2026-08-12 13:28:07

|

991人浏览过

|

来源于php中文网

原创

在PyCharm中打断点需点击行号左侧灰色区设红点,仅对可执行语句生效;启动Debug须右键选“Debug 'xxx.py'”或按Shift+F9(Win/Linux)/⌃⌥D(macOS),不可点运行按钮;调试时用F7(步入)、F8(步过)、F9(继续到断点)控制执行流。

pycharm快速入门:怎么调试(debug)单步执行代码

怎么在PyCharm里打断点并启动Debug模式

PyCharm的调试不是靠运行按钮,而是靠左侧编辑区边缘点击——鼠标移到行号左边的灰色空白处,单击出现一个红点,就是断点。它只对可执行语句生效,比如 print()、if、函数调用行;变量赋值语句(如 a = 1)也能设,但某些优化场景下可能跳过。

启动调试必须用右键菜单或快捷键:右键 → Debug 'xxx.py',或者按 Shift + F9(Windows/Linux)/ ⌃⌥D(macOS)。别误点绿色三角形“Run”,那不会进入调试器。

  • 断点默认是“Suspend thread”,即暂停当前线程,不影响其他线程(适合多线程调试)
  • 如果想让所有断点都暂停整个进程,需右键断点 → Edit Breakpoint → 勾选 Suspend all
  • 临时禁用断点:Ctrl+左键点击红点,变成浅红色圆圈;再次点击恢复

单步执行时F7/F8/F9各走哪一步

进入Debug模式后,顶部会出现控制条,但更常用的是快捷键。它们的区别不在“快慢”,而在“是否进入函数内部”:

  • F8(Step Over):执行当前行,不进入函数体。比如遇到 result = calculate(x),按F8会直接跑到下一行,calculate() 内部逻辑被跳过
  • F7(Step Into):强制进入当前行调用的函数。上例中按F7会跳进 calculate() 的第一行。但如果该函数是内置函数(如 len()、print()),PyCharm默认不进去,需提前在设置里勾选 Settings → Build → Debugger → Step into my code only 关掉
  • F9(Resume Program):直接运行到下一个断点,或程序结束。不是“继续一行”,而是“继续到断点”

容易混淆的是:按一次F7不一定只进一层——如果当前行有多个函数调用(如 f(g(x))),F7会先进入最外层 f();想进 g(),得先F8跳过 f(),再在 g(x) 行按F7。

PyCharm 2026.2
PyCharm 2026.2

PyCharm 2026.2是 JetBrains PyCharm 的指定版本安装包,下载地址指向官方 Windows 安装包直链,可用于旧项目兼容、版本回退和环境测试。

下载

为什么变量值没显示 / Watch窗口里加了表达式却报错

Debug过程中变量面板(Variables)默认只显示当前栈帧的局部变量和全局变量,不自动展开嵌套对象或属性。常见问题不是数据丢了,而是“没手动点开”:

  • 字典、列表、自定义对象默认折叠,要点击右侧小箭头才能展开看内容
  • 想实时观察某个表达式(如 len(my_list) > 5),不能直接写进Variables面板,得右键 → Add to Watches,或在Watches窗口底部点 + 号输入
  • Watches里写的表达式必须能在当前作用域求值。比如在函数内调试时,写 os.getcwd() 没问题,但写 nonexistent_var 就会显示 Unresolved reference
  • 注意:Watches里的表达式支持简单运算和函数调用,但不支持赋值语句(x = 1 会报语法错误)

调试Flask/Django等Web服务时怎么不卡住浏览器

Web框架默认启用多线程或多进程(如Flask的 debug=True 自带重载+多线程),会导致断点一停,整个服务无响应,刷新页面就超时。这不是PyCharm的问题,而是调试器和框架线程模型冲突:

  • Flask:启动Debug前,在代码里显式关闭重载和多线程:app.run(debug=True, use_reloader=False, threaded=False)
  • Django:运行配置里勾选 Run with Python Console 无效;正确做法是在Run Configuration → Environment variables 中添加 DEBUG=True,并在 manage.py runserver 后加参数 --nothreading --noreload
  • 更稳妥的方式:用PyCharm内置的Python Console启动服务,而不是直接Debug脚本——右键 manage.py → Debug,然后在Console里手动输 runserver --nothreading --noreload

断点设在视图函数里才有效;路由分发、中间件、模板渲染这些环节,得在对应源码位置设断点,光在views.py里断不够。

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

更多
python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

1571

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

3744

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1589

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

21497

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2647

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2707

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

1083

2023.08.11

python合并两个列表
python合并两个列表

Python是一种强大的编程语言,具有许多方便的功能和工具。在Python中,有多种方法可以合并两个列表。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

576

2023.08.10

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

20

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn