首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PyCharm -如何调试(就像在Jupyter Notebook中一样),而不必在每次修改代码时重新运行完整的脚本?

基础概念

PyCharm 是一款强大的 Python 集成开发环境(IDE),提供了丰富的功能来提高开发效率,其中包括调试功能。调试允许开发者逐步执行代码,检查变量的值,设置断点等,以便更好地理解代码的执行流程和找出潜在的错误。

调试优势

  1. 高效性:通过调试,开发者可以快速定位问题,而不需要通过打印语句或重新运行整个脚本来猜测问题所在。
  2. 灵活性:可以在代码的任何位置设置断点,逐步执行代码,观察变量的变化。
  3. 可视化:PyCharm 提供了直观的调试界面,可以清晰地看到调用栈、变量值等信息。

调试类型

  1. 本地调试:在本地机器上运行和调试代码。
  2. 远程调试:通过网络连接到远程服务器进行调试。
  3. Docker 容器内调试:在 Docker 容器内部进行调试。

应用场景

  • 复杂的逻辑错误排查。
  • 性能问题的分析。
  • 新功能的开发和测试。

如何调试

设置断点

在 PyCharm 中,你可以通过点击代码行号旁边的空白区域来设置断点。断点会以红色圆点显示。

启动调试会话

  1. 点击工具栏上的“调试”按钮(一个虫子图标)。
  2. 或者使用快捷键(通常是 Shift + F9)。

调试操作

  • Step Over (F8):执行当前行代码,然后移动到下一行。
  • Step Into (F7):如果当前行是一个函数调用,则进入该函数内部。
  • Step Out (Shift + F8):从当前函数返回到调用它的地方。
  • Resume Program (F9):继续执行程序直到遇到下一个断点。

示例代码

假设你有一个简单的 Python 脚本 example.py

代码语言:txt
复制
def add(a, b):
    return a + b

result = add(1, 2)
print(result)
  1. add 函数的第一行设置断点。
  2. 启动调试会话。
  3. 使用 Step Over 和 Step Into 来逐步执行代码,观察变量的值。

常见问题及解决方法

断点未生效

  • 检查断点设置:确保断点没有被禁用。
  • 检查运行配置:确保你正在调试正确的脚本。

调试速度慢

  • 优化代码:减少不必要的计算和 I/O 操作。
  • 使用条件断点:只在特定条件下触发断点。

无法连接到远程调试服务器

  • 检查网络连接:确保本地机器能够访问远程服务器。
  • 检查配置:确保远程调试的配置正确无误。

参考链接

PyCharm 调试指南

通过上述步骤和技巧,你可以在 PyCharm 中高效地进行调试,而不必每次修改代码时都重新运行完整的脚本。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JupyterPyCharm不可兼得?Jupytext就是你需要

Jupyter Notebook 之所以这么流行,主要还是它演示和可视化,我们可以查看每一段代码输出与运行效果。...其中比较重要是版本控制,Jupyter Notebook 采用是 JSON 结构,可读性比较差。版本控制能让我们发觉潜在优秀代码,我们可以关注代码变化挖掘到底哪些是重要。...、Matlab、Octave、C++ 和 q/kdb+ 脚本 如果我们将 Jupyter Notebook 保存为 Python 脚本,那么就可以将 Python 文件导入 Git 仓库,并追踪代码修改和变化...有意思是,Python 代码修改 Jupyter Notebook 中完成,这在以前是无法直接追踪。...「刷新」这个动作会保存内核变量,这样你就可以无需重新运行 notebook notebook 中继续工作、运行修改单元。

1.6K40

Jupyter Notebook切换到Script5个理由

使用脚本可以帮助我实现Jupyter Notebook缺点 ? 动机 与大多数人一,我开始学习数据科学时使用第一个工具是Jupyter Notebook。...但是,每次尝试新方法,都需要重新运行整个笔记本。这很耗时,尤其是处理过程或培训需要很长时间才能运行时。 对于重现性而言并不理想:如果要使用结构略有不同新数据,则很难笔记本中识别错误源。...对于生产而言并不理想: Jupyter Notebook与其他工具配合使用时效果不佳。使用其他工具,从Jupyter Notebook运行代码并不容易。...我知道必须有一种更好方式来处理我代码,所以我决定尝试一下脚本。这些是我使用脚本发现好处: 有组织 Jupyter Notebook单元格使得很难将代码组织成不同部分。...每当我们要处理数据,我们都知道该类中函数Preprocess可用于此目的。 鼓励实验 当我们想尝试另一种预处理数据方法,我们可以通过注释掉这样方式来添加或删除函数,不必担心破坏代码

1.2K20
  • PyCharmJupyter完美融合,Jupytext来啦!

    Jupyter Notebook 之所以这么流行,主要还是它演示和可视化,我们可以查看每一段代码输出与运行效果。...其中比较重要是版本控制,Jupyter Notebook 采用是 JSON 结构,可读性比较差。版本控制能让我们发觉潜在优秀代码,我们可以关注代码变化挖掘到底哪些是重要。...、Matlab、Octave、C++ 和 q/kdb+ 脚本 如果我们将 Jupyter Notebook 保存为 Python 脚本,那么就可以将 Python 文件导入 Git 仓库,并追踪代码修改和变化...有意思是,Python 代码修改 Jupyter Notebook 中完成,这在以前是无法直接追踪。...「刷新」这个动作会保存内核变量,这样你就可以无需重新运行 notebook notebook 中继续工作、运行修改单元。

    88220

    没有电脑也能数据分析,安卓运行Jupyter notebook 操作指南

    Python作为近来广受大家喜爱编程语言,终于2018年9月份首登前三宝座。...而在Python使用过程中,最受欢迎可谓是Jupyter notebook 了,因为它具有以下众多优点: 1 极其适合数据分析( 想象一下如下混乱场景:你终端中运行程序,可视化结果却显示另一个窗口中...,包含函数和类脚本存在其他文档中,更可恶是你还需另外写一份说明文档来解释程序如何执行以及结果如何); 2 支持多语言; 3 分享便捷(网页形式、GitHub天然支持,还可以导出为PDF等格式);...02 编辑特性 代码预测,自动缩进和实时代码分析,就像在任何真正IDE中一。 (本条需要付费高级版) 扩展键盘栏,包含您在Python中编程所需所有符号。 语法高亮显示和主题。...5 使用Jupyter notebook 最后有个小tip,如果将浏览器UA标识从安卓设置为电脑,小编认为对于Jupyter notebook 使用会更方便些~ ? ? ? 怎么

    2.2K20

    是时候联盟JupyterPyCharm了,Jupytext就是你需要

    Jupyter Notebook 之所以这么流行,主要还是它演示和可视化,我们可以查看每一段代码输出与运行效果。...其中比较重要是版本控制,Jupyter Notebook 采用是 JSON 结构,可读性比较差。版本控制能让我们发觉潜在优秀代码,我们可以关注代码变化挖掘到底哪些是重要。...、Matlab、Octave、C++ 和 q/kdb+ 脚本 如果我们将 Jupyter Notebook 保存为 Python 脚本,那么就可以将 Python 文件导入 Git 仓库,并追踪代码修改和变化...有意思是,Python 代码修改 Jupyter Notebook 中完成,这在以前是无法直接追踪。...「刷新」这个动作会保存内核变量,这样你就可以无需重新运行 notebook notebook 中继续工作、运行修改单元。

    1.6K20

    数据科学、机器学习IDE概览

    然而,因为数据科学家除了可以选择传统 IDE,还可以选择 Jupyter notebook 这样浏览器中运行新工具。...集成数据查看器可供查看表格数据,调试模式下结合逐步执行可以实时检查数据是如何更新。...开发者可以通过 R Markdown 文档分享数据结果,markdown 代码段可以使用集成 R 代码。 RTVS 为 R 提供了完整 REPL 体验,可以交互窗口中直接运行源文件代码。...和 Python、R 一notebook单元可以分别运行,这让数据科学家可以训练一次模型后多次使用。...和其他语言一,使用 Jupyter Notebook 不足在于核心容易出错或功能有限,非常有限调试功能,甚至没有调试功能。数据科学家需要仔细地组织他们单元,否则可能导致很多困惑。

    3.5K30

    PyCharmJupyter完美融合,Jupytext来啦!

    Jupyter Notebook 之所以这么流行,主要还是它演示和可视化,我们可以查看每一段代码输出与运行效果。...其中比较重要是版本控制,Jupyter Notebook 采用是 JSON 结构,可读性比较差。版本控制能让我们发觉潜在优秀代码,我们可以关注代码变化挖掘到底哪些是重要。...、Matlab、Octave、C++ 和 q/kdb+ 脚本 如果我们将 Jupyter Notebook 保存为 Python 脚本,那么就可以将 Python 文件导入 Git 仓库,并追踪代码修改和变化...有意思是,Python 代码修改 Jupyter Notebook 中完成,这在以前是无法直接追踪。...「刷新」这个动作会保存内核变量,这样你就可以无需重新运行 notebook notebook 中继续工作、运行修改单元。

    2.1K30

    JupyterPyCharm不可兼得?Jupytext就是你需要

    Jupyter Notebook 之所以这么流行,主要还是它演示和可视化,我们可以查看每一段代码输出与运行效果。...其中比较重要是版本控制,Jupyter Notebook 采用是 JSON 结构,可读性比较差。版本控制能让我们发觉潜在优秀代码,我们可以关注代码变化挖掘到底哪些是重要。...、Matlab、Octave、C++ 和 q/kdb+ 脚本 如果我们将 Jupyter Notebook 保存为 Python 脚本,那么就可以将 Python 文件导入 Git 仓库,并追踪代码修改和变化...有意思是,Python 代码修改 Jupyter Notebook 中完成,这在以前是无法直接追踪。...「刷新」这个动作会保存内核变量,这样你就可以无需重新运行 notebook notebook 中继续工作、运行修改单元。

    2.1K30

    没有电脑也能数据分析,安卓运行Jupyter notebook 操作指南

    Python作为近来广受大家喜爱编程语言,终于2018年9月份首登前三宝座。...而在Python使用过程中,最受欢迎可谓是Jupyter notebook 了,因为它具有以下众多优点: 1 极其适合数据分析( 想象一下如下混乱场景:你终端中运行程序,可视化结果却显示另一个窗口中...,包含函数和类脚本存在其他文档中,更可恶是你还需另外写一份说明文档来解释程序如何执行以及结果如何); 2 支持多语言; 3 分享便捷(网页形式、GitHub天然支持,还可以导出为PDF等格式);...02 编辑特性 代码预测,自动缩进和实时代码分析,就像在任何真正IDE中一。 (本条需要付费高级版) 扩展键盘栏,包含您在Python中编程所需所有符号。 语法高亮显示和主题。...5 使用Jupyter notebook 最后有个小tip,如果将浏览器UA标识从安卓设置为电脑,小编认为对于Jupyter notebook 使用会更方便些~ ? ? ? 怎么

    2.8K30

    受用一生高效 PyCharm 使用技巧(二)

    如果在 Pycharm 中可以像 IPython Shell 和 Jupyter Notebook 那样,可以记住运行后所有的变量信息,可以不需要重新运行项目或脚本,只需稍微调整下我们代码,直接就可以进行正则调试...如果不打断点,脚本执行完成后,也仍然可以在这个界面查看并操作所有变量。 ? 现在我们已经可以满足我们调试需求,但是每次运行脚本,都要手动点击 Show Python Prompt ,有点麻烦。...设置上之后,之后你每次运行脚本后,都会默认为你存储所有变量值,并为你打开 console 命令行调试界面。...弹出了一个 Evaluate Expression 窗口,这里 可以运行命令表达式,直接操作变量。 ? 7. 指定参数执行脚本 Pycharm 运行项目,通常是怎么执行?...每个人变量命名习惯不一如何项目里大量使用了 myname 这种风格变量命名方法,像下面这样(随便找了一段 cloudinit 代码),是让人挺不舒服,总有一种代码有 bug 错觉。

    58220

    受用一生高效 PyCharm 使用技巧(二)

    如果在 Pycharm 中可以像 IPython Shell 和 Jupyter Notebook 那样,可以记住运行后所有的变量信息,可以不需要重新运行项目或脚本,只需稍微调整下我们代码,直接就可以进行正则调试...如果不打断点,脚本执行完成后,也仍然可以在这个界面查看并操作所有变量。 ? 现在我们已经可以满足我们调试需求,但是每次运行脚本,都要手动点击 Show Python Prompt ,有点麻烦。...设置上之后,之后你每次运行脚本后,都会默认为你存储所有变量值,并为你打开 console 命令行调试界面。...弹出了一个 Evaluate Expression 窗口,这里 可以运行命令表达式,直接操作变量。 ? 7. 指定参数执行脚本 Pycharm 运行项目,通常是怎么执行?...每个人变量命名习惯不一如何项目里大量使用了 myname 这种风格变量命名方法,像下面这样(随便找了一段 cloudinit 代码),是让人挺不舒服,总有一种代码有 bug 错觉。

    84520

    pycharmjupyter_怎么让两个图层完美融合

    Jupyter Notebook 之所以这么流行,主要还是它演示和可视化,我们可以查看每一段代码输出与运行效果。...其中比较重要是版本控制,Jupyter Notebook 采用是 JSON 结构,可读性比较差。版本控制能让我们发觉潜在优秀代码,我们可以关注代码变化挖掘到底哪些是重要。...、Matlab、Octave、C++ 和 q/kdb+ 脚本 如果我们将 Jupyter Notebook 保存为 Python 脚本,那么就可以将 Python 文件导入 Git 仓库,并追踪代码修改和变化...有意思是,Python 代码修改 Jupyter Notebook 中完成,这在以前是无法直接追踪。...「刷新」这个动作会保存内核变量,这样你就可以无需重新运行 notebook notebook 中继续工作、运行修改单元。

    60420

    Python学习环境安装

    : python3.5自带了一个解释器IDLE用来执行.py脚本,但是却不利于我们书写调试大量代码。...用notepade++写完脚本,再用idle来执行,但却不便于调试。...PyCharm是一种Python IDE,带有一整套可以帮助用户使用Python语言开发提高其效率工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。...6、Jupyter Notebook:直接点击打开,或在终端中输入: jupyter notebook 以启动服务器;浏览器中打开notebook页面地址“http://localhost:8888...Jupyter Notebook是一种 Web 应用,能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享文档中。 7、Spyder:直接点击打开IDE。

    65010

    实用教程 | 高效 PyCharm 使用技巧 ②

    如果在 Pycharm 中可以像 IPython Shell 和 Jupyter Notebook 那样,可以记住运行后所有的变量信息,可以不需要重新运行项目或脚本,只需稍微调整下我们代码,直接就可以进行正则调试...如果不打断点,脚本执行完成后,也仍然可以在这个界面查看并操作所有变量。 ? 现在我们已经可以满足我们调试需求,但是每次运行脚本,都要手动点击 Show Python Prompt ,有点麻烦。...设置上之后,之后你每次运行脚本后,都会默认为你存储所有变量值,并为你打开 console 命令行调试界面。...弹出了一个 Evaluate Expression 窗口,这里 可以运行命令表达式,直接操作变量。 ? 7. 指定参数执行脚本 Pycharm 运行项目,通常是怎么执行?...每个人变量命名习惯不一如何项目里大量使用了 myname 这种风格变量命名方法,像下面这样(随便找了一段 cloudinit 代码),是让人挺不舒服,总有一种代码有 bug 错觉。

    77930

    jupyter适合开发吗_jupyternotebook和pycharm区别

    Jupyter Notebook 之所以这么流行,主要还是它演示和可视化,我们可以查看每一段代码输出与运行效果。...其中比较重要是版本控制,Jupyter Notebook 采用是 JSON 结构,可读性比较差。版本控制能让我们发觉潜在优秀代码,我们可以关注代码变化挖掘到底哪些是重要。...、Matlab、Octave、C++ 和 q/kdb+ 脚本 如果我们将 Jupyter Notebook 保存为 Python 脚本,那么就可以将 Python 文件导入 Git 仓库,并追踪代码修改和变化...有意思是,Python 代码修改 Jupyter Notebook 中完成,这在以前是无法直接追踪。...「刷新」这个动作会保存内核变量,这样你就可以无需重新运行 notebook notebook 中继续工作、运行修改单元。

    1.8K10

    受用一生高效 PyCharm 使用技巧(二)

    如果在 Pycharm 中可以像 IPython Shell 和 Jupyter Notebook 那样,可以记住运行后所有的变量信息,可以不需要重新运行项目或脚本,只需稍微调整下我们代码,直接就可以进行正则调试...如果不打断点,脚本执行完成后,也仍然可以在这个界面查看并操作所有变量。 ? 现在我们已经可以满足我们调试需求,但是每次运行脚本,都要手动点击 Show Python Prompt ,有点麻烦。...设置上之后,之后你每次运行脚本后,都会默认为你存储所有变量值,并为你打开 console 命令行调试界面。...弹出了一个 Evaluate Expression 窗口,这里 可以运行命令表达式,直接操作变量。 ? 7. 指定参数执行脚本 Pycharm 运行项目,通常是怎么执行?...每个人变量命名习惯不一如何项目里大量使用了 myname 这种风格变量命名方法,像下面这样(随便找了一段 cloudinit 代码),是让人挺不舒服,总有一种代码有 bug 错觉。

    1.3K20

    受用一生高效 PyCharm 使用技巧(二)

    如果在 Pycharm 中可以像 IPython Shell 和 Jupyter Notebook 那样,可以记住运行后所有的变量信息,可以不需要重新运行项目或脚本,只需稍微调整下我们代码,直接就可以进行正则调试...如果不打断点,脚本执行完成后,也仍然可以在这个界面查看并操作所有变量。 ? 现在我们已经可以满足我们调试需求,但是每次运行脚本,都要手动点击 Show Python Prompt ,有点麻烦。...设置上之后,之后你每次运行脚本后,都会默认为你存储所有变量值,并为你打开 console 命令行调试界面。...弹出了一个 Evaluate Expression 窗口,这里 可以运行命令表达式,直接操作变量。 ? 7. 指定参数执行脚本 Pycharm 运行项目,通常是怎么执行?...每个人变量命名习惯不一如何项目里大量使用了 myname 这种风格变量命名方法,像下面这样(随便找了一段 cloudinit 代码),是让人挺不舒服,总有一种代码有 bug 错觉。

    87620

    jupyter notebook 远程连接调试实录

    jupyter notebook是一种命令式执行方式,以cell为执行单元,配合优美的前端界面,其执行完毕后可读性极强,对于科学家来说,往往都是简短计算脚本,用不着单独开一个Pycharm工程,一个比文本编辑器和自带命令行解释器稍强一点运行环境显得非常难得了...而且,写完一个脚本,跑完数据直接就可以给别人汇报了,省了大量写ppt或者markdown时间有木有。 jupyter notebook对图片显示方式极其适合调试。...import cv2 cv2.imshow("demo",demo) cv2.waitKey() 写openCV将上面的方式替换为下面的方式后会发现调试起来极其舒服。...,但在服务器远程调试方面,jupyter正好卡入了一个难觅对手领域上。...对于很多科学家而言,vim和emacs明显是不讨喜,而在Pycharm中,每起一个工程配一次SFTP还是有点小耽误时间,jupyter就正好提供了这种轻量级又有效方案。

    2K30

    Python编辑器:Jupyter Notebook

    什么是 Jupyter Notebook 《Python 快速入门篇》 里我提到了3个编辑器,其中一个是 Jupyter Notebook。...不是所有代码都要从头到尾执行一遍,这能大大提高我们工作效率。 Jupyter Notebook使用交互模式环境。VS Code 和 PyCharm 写和运行 Python 文件都是用命令行模式。...如果不小心关掉浏览器的话,也可以终端找回打开地址。 浏览器输入下图中红框地址就能重新打开。 关闭 需要关掉 Jupyter Notebook终端窗口按 Control + c。...print("雷猴") Shift + 回车键 功能是执行选中单元格代码,功能和工具栏里运行按钮是一。...这对于调试来说是非常方便。 编辑模式与命令模式 Jupyter Notebook 有编辑模式和命令模式。

    24910

    受用一生高效PyCharm使用技巧(二)

    如果你还没看过,可以下面的传送门,直接访达:受用一生高效 PyCharm 使用技巧(一) 6. 神一调试技巧 假如我们一个爬虫项目中,会使用到正则表达式来匹配我们想要抓取内容。...如果在 Pycharm 中可以像 IPython Shell 和 Jupyter Notebook 那样,可以记住运行后所有的变量信息,可以不需要重新运行项目或脚本,只需稍微调整下我们代码,直接就可以进行正则调试...如果不打断点,脚本执行完成后,也仍然可以在这个界面查看并操作所有变量。 现在我们已经可以满足我们调试需求,但是每次运行脚本,都要手动点击 Show Python Prompt ,有点麻烦。嗯?...设置上之后,之后你每次运行脚本后,都会默认为你存储所有变量值,并为你打开 console 命令行调试界面。...每个人变量命名习惯不一如何项目里大量使用了 myname 这种风格变量命名方法,像下面这样(随便找了一段 cloudinit 代码),是让人挺不舒服,总有一种代码有 bug 错觉。

    84120
    领券