Python 跨ipdb会话的历史记录

Python 跨ipdb会话的历史记录,python,ipython,ipdb,Python,Ipython,Ipdb,这个问题以前提过,但我找不到好的答案。所以,我想再问一次 我希望我的ipdb能够跨会话记住命令。现在,它可以调出在Ipython会话中执行的命令,但不能调出旧ipdb会话中执行的命令。如果我有这个功能的话,这将大大节省时间 有人能解决这个问题吗?如果您想使用另一个调试器,has会跨会话保存历史记录 我遇到了与您相同的问题,因此我关闭了该项目,并为持久历史添加了一个补丁。您可以使用pip安装ipdb的分叉版本: pip install git+https://github.com/micheles

这个问题以前提过,但我找不到好的答案。所以,我想再问一次

我希望我的ipdb能够跨会话记住命令。现在,它可以调出在Ipython会话中执行的命令,但不能调出旧ipdb会话中执行的命令。如果我有这个功能的话,这将大大节省时间


有人能解决这个问题吗?

如果您想使用另一个调试器,has会跨会话保存历史记录

我遇到了与您相同的问题,因此我关闭了该项目,并为持久历史添加了一个补丁。您可以使用pip安装ipdb的分叉版本:

pip install git+https://github.com/michelesr/ipdb.git
只需确保您的IPython版本为5.0或更高。可在此中找到实施信息。

  • 创建一个包含以下内容的文件
  • 使用
    ~/.pdbrc
    文件中的
    execfile(…)
    导入该文件


PS您可以在

中找到此代码和更多补丁,我经常通过
ipdb
获得这种分叉愿望。
def use_file_history():
    import os
    from IPython.terminal.debugger import TerminalPdb
    from prompt_toolkit.history import FileHistory
    cmdloop = TerminalPdb.cmdloop
    def cmdloop_prime(self, intro=None):
        fname = os.path.join(os.path.expanduser('~'), '.ipdb_history')
        self._pt_app.buffer.history = FileHistory(fname)
        self._pt_app.buffer.reset()
        cmdloop(self, intro)
    TerminalPdb.cmdloop = cmdloop_prime

use_file_history()
del use_file_history