Using python debugger on python3 throws NameError: name 'raw_input' is not defined
Using python debugger on python3 throws NameError: name 'raw_input' is not defined
改变了吗?
我只是将它用作 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 无关
对于 Python 3.x,使用 input() 。对于 Python 2.x,使用 raw_input() 。不要忘记您可以在您的 input() 调用中添加一个提示字符串来创建一个更少的打印语句。输入("GUESS THAT NUMBER!")
这是文档 https://docs.python.org/3/whatsnew/3.0.html
问题来了。
您使用的 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
使用 raw_input
时
但在最新版本 1.5.2
中,他们使用 try
和 catch
.
正确处理了它
https://github.com/erikrose/nose-progressive/blob/1.5.2/noseprogressive/wrapping.py#L33
尝试将 noseprogressive
库更新到最新版本 1.5.2
,应该没问题。
希望这对您有所帮助。
改变了吗?
我只是将它用作 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 无关
对于 Python 3.x,使用 input() 。对于 Python 2.x,使用 raw_input() 。不要忘记您可以在您的 input() 调用中添加一个提示字符串来创建一个更少的打印语句。输入("GUESS THAT NUMBER!") 这是文档 https://docs.python.org/3/whatsnew/3.0.html
问题来了。
您使用的 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
使用 raw_input
但在最新版本 1.5.2
中,他们使用 try
和 catch
.
https://github.com/erikrose/nose-progressive/blob/1.5.2/noseprogressive/wrapping.py#L33
尝试将 noseprogressive
库更新到最新版本 1.5.2
,应该没问题。
希望这对您有所帮助。