在 PyCharm IPython 中调试

12 投票
3 回答
4569 浏览
提问于 2025-04-17 23:40

在PyCharm的IPython控制台运行代码时,能否设置图形化的断点?

也就是说:

  • 你在foo.py文件里有一个叫foo()的脚本
  • 你在编辑器里给foo()里面放了一个图形化的断点(就是行号旁边的红点)
  • 你把foo导入到PyCharm的IPython控制台里,然后执行foo()(注意:不是通过调试配置来运行!)

3 个回答

1

在Ubuntu系统上,我需要把文件 /etc/sysctl.d/10-ptrace.conf 中的这一行 kernel.yama.ptrace_scope = 1 改成 kernel.yama.ptrace_scope = 0,否则PyCharm就无法连接到ipython进程。

1

是的,可以做到。不过这不是自动的。

(使用的是4.5.2版本,Windows 8系统)

我在运行一个IPython Notebook,然后让PyCharm启动这个Notebook的后台。

我点击“工具”,选择“附加到进程”,然后试着找到Notebook进程的PID(进程ID)。不过我还没找到一个简单的方法来做到这一点。目前我使用的是Process Explorer,先找到PyCharm的条目,然后在Notebook服务器启动后观察新的子进程。你需要找到那个最底层的python.exe进程,比如:

6268  pycharm.exe
1235    python.exe       (new when notebook launched)
7435      conhost.exe    (new)
9237      python.exe     (new - pick this PID)

现在我可以运行一个代码单元,并且可以使用图形化的断点了。

祝你玩得开心。

2

正如@bvanlew在评论中提到的,PyCharm(无论是社区版还是专业版)现在都支持在交互式控制台上连接调试器。只需点击下面显示的调试按钮,当程序运行到设置的断点时,PyCharm的调试器就会启动。

在这里输入图片描述

撰写回答