为每个断点导入 pprint()
Import pprint for every breakpoint()
每次我在 python 中使用 breakpoint()
时,我不可避免地最终会导入 pprint
(from pprint import pprint
)。有没有办法在达到 breakpoint()
时自动将 pprint
添加到命名空间?
Python 3.8.5
未完全解决此问题或早于 breakpoint()
实施的类似问题
- Automatically import modules when entering the python or ipython interpreter
- Import pprint by default as a debugging tool
- automatically import module when run python script?
制作一个这样的文件,如果需要,将其放入可安装包中,或者将其放在 PYTHONPATH 的某个位置:
$ cat mybreakpoint.py
import pdb
def pprint_breakpoint():
import pprint
pdb.set_trace()
现在您可以使用环境变量 PYTHONBREAKPOINT
像这样自定义调试器范围:
$ PYTHONBREAKPOINT=mybreakpoint.pprint_breakpoint python3
Python 3.11.0b1 (main, May 18 2022, 12:50:35) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> breakpoint()
--Return--
> .../mybreakpoint.py(5)pprint_breakpoint()->None
-> pdb.set_trace()
(Pdb) pprint.pprint({"k2":"v2", "k1":"v1"})
{'k1': 'v1', 'k2': 'v2'}
就我个人而言,我总是将 IPython 安装到我的开发环境中,这样我就可以使用 PYTHONBREAKPOINT=IPython.embed
并默认在断点中获得更多 full-featured REPL,包括 IPython的漂亮打印机。
每次我在 python 中使用 breakpoint()
时,我不可避免地最终会导入 pprint
(from pprint import pprint
)。有没有办法在达到 breakpoint()
时自动将 pprint
添加到命名空间?
Python 3.8.5
未完全解决此问题或早于 breakpoint()
- Automatically import modules when entering the python or ipython interpreter
- Import pprint by default as a debugging tool
- automatically import module when run python script?
制作一个这样的文件,如果需要,将其放入可安装包中,或者将其放在 PYTHONPATH 的某个位置:
$ cat mybreakpoint.py
import pdb
def pprint_breakpoint():
import pprint
pdb.set_trace()
现在您可以使用环境变量 PYTHONBREAKPOINT
像这样自定义调试器范围:
$ PYTHONBREAKPOINT=mybreakpoint.pprint_breakpoint python3
Python 3.11.0b1 (main, May 18 2022, 12:50:35) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> breakpoint()
--Return--
> .../mybreakpoint.py(5)pprint_breakpoint()->None
-> pdb.set_trace()
(Pdb) pprint.pprint({"k2":"v2", "k1":"v1"})
{'k1': 'v1', 'k2': 'v2'}
就我个人而言,我总是将 IPython 安装到我的开发环境中,这样我就可以使用 PYTHONBREAKPOINT=IPython.embed
并默认在断点中获得更多 full-featured REPL,包括 IPython的漂亮打印机。