它改变了吗?
我只是将其用作import pdb; pdb.set_trace()
,但在使用pdb
的行中,它现在会抛出:
NameError: name 'raw_input' is not defined
对于那些要求完全追溯的人:
My app traceback and then:
if not serializer.is_valid():
vi +48 /usr/lib/python3.5/bdb.py # trace_dispatch
return self.dispatch_line(frame)
vi +66 /usr/lib/python3.5/bdb.py # dispatch_line
self.user_line(frame)
vi +259 /usr/lib/python3.5/pdb.py # user_line
self.interaction(frame, None)
vi +346 /usr/lib/python3.5/pdb.py # interaction
self._cmdloop()
vi +319 /usr/lib/python3.5/pdb.py # _cmdloop
self.cmdloop()
vi +32 /home/user/.virtualenvs/myapp/lib/python3.5/site-packages/noseprogressive/wrapping.py # cmdloop
orig_raw_input = raw_input
NameError: name 'raw_input' is not defined
对我来说非常的python3.5 pdb,与2.7 pdb无关。
答案 0 :(得分:3)
这是问题。
您正在使用noseprogressive
版本的1.5.1
库,该库在 6 年前( 2013年3月26日 这是为Python 2.7
开发的)。
https://github.com/erikrose/nose-progressive/blob/1.5.1/noseprogressive/wrapping.py#L32
他们没有处理将变量raw_input
分配给orig_raw_input
的异常,这就是为什么在使用{{时得到 NameError
的原因1}}
但是在最新版本raw_input
中,他们使用1.5.2
和try
正确地处理了它。
https://github.com/erikrose/nose-progressive/blob/1.5.2/noseprogressive/wrapping.py#L33
尝试将catch
库更新为最新版本noseprogressive
,应该可以。
希望这会有所帮助。
答案 1 :(得分:0)
对于Python 3.x,请使用input()。对于Python 2.x,请使用raw_input()。别忘了,您可以在input()调用中添加提示字符串,以减少一条打印语句。输入(“ GUESS THAT NUMBER!”) 这是文档https://docs.python.org/3/whatsnew/3.0.html