PonyORM 0.4.8引发名称错误:未定义名称xx

2024-10-01 15:34:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我的程序出现了一个奇怪的问题,异常堆栈是:

*except Exception, cause: raise ExprEvalError(src, cause)
ExprEvalError: date_after raises NameError: name 'date_after' is not defined*

所以代码是:

^{pr2}$

ORM框架很简单,但我不认为它与那个。那个代码可以在其他pc机上正常运行

你能告诉我有什么问题吗? 谢谢。在

p.s

  • Python-2.7.4
  • 小马-0.4.8

Tags: 代码name程序srcdateis堆栈exception
2条回答

小马ORM作者在这里。乐高冲锋队已经回答了如何解决问题的问题,但是既然你也想知道这个错误的原因,我就在这里描述一下。您可以订阅我们的mailing list,并在那里询问任何与小马有关的问题。在

简而言之:在0.4.8版本中,我们改进了@cut_tracebackdecorator,这一更改破坏了一些不相关的功能。在

详细回答:

  1. 为了访问查询参数值(例如代码中的date_after),Pony检查相应的堆栈帧。在
  2. @cut_traceback修饰符包装的公共API的每个Pony函数。当在交互模式下使用Pony时,这个修饰符将删除一些内部回溯线。早些时候,一些用户报告回溯输出对他们来说太吓人了,@cut_traceback使回溯输出更加“用户友好”。在
  3. 在以前版本的Pony @cut_traceback中,decorator有一个缺点——它隐藏了函数的实际参数,并用*args**kwargs替换它们。如果IDE向开发人员显示函数签名,这可能会很烦人。因此,我们用改进的版本替换了@cut_tracebackdecorator,它保持了修饰函数的签名不变。在
  4. 但是这个新版本的@cut_tracebackdecorator又使用了一个堆栈框架。因此,所有从堆栈帧获取用户参数的Pony函数都应该修改,以便检查另一个堆栈帧。但是我们在0.4.8版本中忘记了
  5. 在0.4.9版本中,我们修复了所有检查堆栈帧的函数,并用测试覆盖了该功能。在

希望我回答了你的问题:)

你的小马版本已经过时了。There is a closed bug regarding lamdbas in Pony that was resolved months ago,这是您的错误'"ExprEvalError" raises NameError: name is not defined' in Google的第一次(也是唯一一次)命中。在

更新你的小马版本,它应该会消失。在

相关问题 更多 >

    热门问题