python - 如何调试从 Jupyter/IPython notebook 运行的外部 .py 函数

标签 python debugging ipython jupyter-notebook spyder

我的 Jupyter/IPython 笔记本在外部 .py 中执行函数。

我需要在这些函数中设置断点、检查变量、单步执行等。

结合使用 print 语句和抛出异常来提前退出单元格是不切实际的。

我需要某种工作流程。

是否可以连接一些第三方编辑器/IDE 来查看 .py 并以某种方式将其连接到 Jupyter/IPython 正在使用的 Python 运行时?

这样一来,如果我使用我的 IDE 在我的外部 .py 中设置一个断点并在笔记本中执行一个遇到所述断点的单元格,我可以继续从 IDE 中手动导航。

编辑:我找到了 https://pypi.python.org/pypi/ipdb https://www.quora.com/What-are-your-favorite-tricks-for-IPython-Notebook

编辑 https://www.youtube.com/watch?v=Jb2HHOahvcE <-- 这个视频越来越接近我所追求的,我只是不太明白如何将它们放在一起。该视频演示了 spyder,它是一个带有 IPython 提示的 IDE...我想知道我是否可以通过提示运行我的笔记本并调试它。

编辑:看起来 PyCharm 完全符合我的要求:https://www.jetbrains.com/help/pycharm/2016.1/tutorial-using-ipython-jupyter-notebook-with-pycharm.html

编辑:我正在尝试让 PyC​​harm 正常运行。如果我整理好,我会在答案中提供详细信息。

最佳答案

在 Jupyter 中,您可以通过添加以下两行作为断点来使用 python 调试器。

import pdb
pdb.set_trace()

代码执行将在此步骤暂停,并为您提供用于调试 python 代码的文本框。我附上了相同的屏幕截图。

可以引用pdb documentation对于除了打印变量之外您可以执行的操作

PDB in Jupyter Notebook

关于python - 如何调试从 Jupyter/IPython notebook 运行的外部 .py 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39465752/

相关文章:

python - 处理 sshpass 密码字段中的特殊字符

python - 为什么 Python 中的装饰器样式上下文管理器无法捕获 Tkinter 窗口中的异常?

gwt - GWT/GXT 的调试控制台

django 在生产服务器上打印信息

python - 如何使用普通 python (不是 ipython)查看或保存 <IPython.core.display.Image object>?

python - 如何在 Tornado 中返回没有默认模板的 HTTP 错误代码?

node.js - 调试Electron应用程序: Breakpoints not working (“Breakpoint ignored because generated code not found” )

python - 尝试在 Python 上安装 Quandl

python - Python 2.7.x 中部分函数的动态生成

python - 仅需要打印一次属性值,如果该属性值再次出现,则应忽略该属性值