python - 在 python3 上使用 python 调试器会抛出 NameError : name 'raw_input' is not defined

标签 python python-3.x pdb

有变化吗? 我只是将其用作 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没什么关系

最佳答案

问题是这样的。

您使用的 noseprogressive 库的 1.5.1 版本大约在 6 年前(26 2013 年 3 月,我猜是为 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中,他们使用trycatch正确处理了它。

https://github.com/erikrose/nose-progressive/blob/1.5.2/noseprogressive/wrapping.py#L33

尝试将noseprogressive库更新到最新版本1.5.2,应该没问题。

希望这有帮助。

关于python - 在 python3 上使用 python 调试器会抛出 NameError : name 'raw_input' is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56833388/

相关文章:

python - 使用 Pandas/python 根据多个条件选择数据

python - 模块未找到错误 : No module named 'requests_html'

Python PDB 立即退出(标准输入)

python - 如何在 python 中对字符串使用格式说明符

python - iloc方法返回不同类型的数据

python - 在这种情况下,python 比 C 慢得多的原因是什么?

debugging - Visual Studio 2013 尝试加载 iisexpress.pdb

python - 如何在 Python 中快速加载大型数据集?

python - 为什么 python 控制台运行与空闲不同

python - 如何为 jupyterhub 配置启动脚本?