让pdb在OS X Yosemite中完成选项卡

时间:2017-02-22 13:36:54

标签: python python-2.7 pdb

我正在尝试在OS X 10.10.5上运行pdb时使标签完成工作。我已经安装了自制的python 2.7.13版本,因为它appears(也见this)Apple没有附带功能性的readline。如果我有一个简单的脚本,trivial.py

var1 = "this"
var2 = "is annoying"

我运行/usr/local/bin/python -m pdb trivial.py并在第一个条目中输入import readline, rlcompleter;我随后可以完成标签。但是,如果我输入我的.pdbrc

import readline
import rlcompleter

标签完成有效。这怎么不完全一样?放入我的.pdbrc时不应该完成标签工作吗?

2 个答案:

答案 0 :(得分:0)

我在linux上遇到了同样的行为。

即。没有.pdbrc

$ python3 -m pdb foo.py
(Pdb) in<tab> gives interact
(Pdb) interact
(Pdb) import rlcompleter
(Pdb) in<tab>
(Pdb) in input(  int(

如果我在.pdbrc中导入rlcompleter,我只能在输入时进行交互。即使导入rlcompleter后,我也会得到相同的结果。

$ python3 -m pdb -c 'import rlcompleter' foo.py

还可以防止标签完成。

比较

的输出
$ python3 -vv -m pdb -c 'import rlcompleter' foo.py

$ python3 -vv -m pdb foo.py

导致段错误,所以我认为这是一个错误。我建议你提交一个bug。提及导入rlcompleter可能会遗漏Pdb completeionkey =设置被覆盖或cmd模块可能被误删。 FWIW这里是我正在寻找的来源,以获得一些额外的信息。 Pdb source

答案 1 :(得分:0)

我找到了this

使用此方法,我可以使标签完成工作。他的代码在源目录中使用.pdbrc,在主目录中使用隐藏的python脚本。该文件包含注释,将文件拆分为两部分。