2017-09-04 111 views
1

这个问题可能很简单,但我是Python新手。这个问题最好用以下简单的例子来说明。我使用PDB调试下面的脚本(这是蟒蛇3):如何从python调试器输入pdb

astring = input("input here: ") 

当步在上述行,我得到了下面的提示,输入“ABC”

input here: abc 

但无论我输入从键盘,我得到错误例如

NameError: "name 'abc' is not defined" 
> /home/wang/tmp/test.py(4)<module>() 
-> astring = input("input here: ") 

如何在调试时输入?非常感谢!

回答

0

您正在使用不正确的功能,为您的目的上的Python 2.使用raw_input而不是input

+0

感谢您指出。其实我使用的是Python 3.我将编辑这个问题。 –

0

看来,“ABC”输入被认为是一种评价。但是,你的程序是输入(“在这里输入”),但你给的例子是“在这里输入:”和来自pdb的输出说:“输入一行:”,我不知道他们是否他们是相同的程序,由于这些差异。尝试输入n(代码的下一行)而不是abc,看看会发生什么。

+0

感谢您的帮助。更新脚本后我使用了旧错误。这个问题现在已经得到纠正。输入n时,它会返回相同的错误,并将“abc”替换为“n”。 –

+0

@王小姐不......你要么不使用python 3(否则某些东西会覆盖你的'输入'函数)。在Python 3:'python3 -c“x = input('input here:')”'while'python2.7 -c“x = input('input here:')”'导致NameError:.. .'。也许你应该'输入sys;打印(sys.version)'看看你在运行什么? – donkopotamus

+0

@donkopotamus:你是对的!非常感谢!我使用“pdb test.py”来尝试pdb,其中“test.py”有一个“#!/ usr/bin/python3”。我认为它使用python3! –