如何从python调试器pdb输入

如何从python调试器pdb输入,python,pdb,Python,Pdb,这个问题可能很琐碎,但我对Python还是新手。这个问题最好用下面的简单例子来说明。我正在使用pdb调试以下脚本(它是python 3): 当我跨入上面的行时,我得到以下提示并键入“abc” 但无论我从键盘输入什么,我都会出错 NameError: "name 'abc' is not defined" > /home/wang/tmp/test.py(4)<module>() -> astring = input("input here: ") NameError:“

这个问题可能很琐碎,但我对Python还是新手。这个问题最好用下面的简单例子来说明。我正在使用pdb调试以下脚本(它是python 3):

当我跨入上面的行时,我得到以下提示并键入“abc”

但无论我从键盘输入什么,我都会出错

NameError: "name 'abc' is not defined"
> /home/wang/tmp/test.py(4)<module>()
-> astring = input("input here: ")
NameError:“未定义名称“abc”
>/home/wang/tmp/test.py(4)()
->astring=input(“此处输入:”)

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

您在Python 2上使用了不正确的函数。使用而不是

似乎输入的“abc”被视为评估。然而,您的程序是输入(“此处输入”),但您给出的示例是“此处输入”,pdb的输出是“输入一行:”,由于这些差异,我不知道它们是否是相同的程序。尝试输入n(下一行代码)而不是abc,看看会发生什么。

谢谢您指出这一点。事实上,我使用的是Python3。我将编辑此问题。谢谢您的帮助。更新脚本后,我使用了旧错误。这个问题现在已经纠正了。当输入n时,返回相同的错误,“abc”替换为“n”。@WangXiaojie No。。。您要么没有使用Python3(否则有东西覆盖了您的
输入
函数)。在python3上:
python3-c“x=input('input here:')”
起作用,而
python2.7-c“x=input('input here:')”
会导致
名称错误:…
。也许你应该做
输入系统;打印(sys.version)
看看你在运行什么?@donkopotamus:你说得对!非常感谢你!我使用“pdb test.py”来尝试pdb,其中“test.py”有一个“#!/usr/bin/python3”。我想当然地认为它使用的是python3!
input here: abc
NameError: "name 'abc' is not defined"
> /home/wang/tmp/test.py(4)<module>()
-> astring = input("input here: ")