我正在尝试在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时不应该完成标签工作吗?
答案 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脚本。该文件包含注释,将文件拆分为两部分。