我可以存档ipython';s%运行(stdout、stderr)并保持交互调试的能力?

我可以存档ipython';s%运行(stdout、stderr)并保持交互调试的能力?,ipython,Ipython,我使用bashshell中的ipython--pdb-c“%runscript.py”来启动 script.py以一种非常方便调试的方式(即--pdb 导致ipython在出现异常时自动放入调试器) 我想将script.py中的stdout和stderr保存到 除了在屏幕上显示文件之外(如使用tee和 来自bash shell的shell重定向) 我有两个很难同时满足的要求: 以以下方式显示和捕获stdout和stderr 对script.py透明 保留在异常发生后进行调试的功能 我还没有找到一

我使用bashshell中的
ipython--pdb-c“%runscript.py”
来启动
script.py
以一种非常方便调试的方式(即
--pdb
导致
ipython
在出现异常时自动放入调试器)

我想将
script.py
中的
stdout
stderr
保存到 除了在屏幕上显示文件之外(如使用
tee
和 来自bash shell的shell重定向)

我有两个很难同时满足的要求:

  • 以以下方式显示和捕获
    stdout
    stderr
    script.py
    透明
  • 保留在异常发生后进行调试的功能
  • 我还没有找到一种不破坏交互式调试器的方法来完成(1)。我相信这是因为
    ipython
    (或
    ipdb
    )在调试期间使用
    stdout
    与用户交互。如果我愿意修改
    script.py
    ,这不会太难(例如,自定义日志逻辑),但我希望像shell重定向一样使用它。

    在/usr/bin/script中包装“ipython-c'%run…'”(使用ipython的-c参数)是我找到的最好的解决方案。然而,这并不能将stdout与stderr分开。