环境: odoo9 asteval 0.9.7
背景介绍
项目中有复杂的业务,后台代码并不能实现所有可能的情况,故此引入了asteval,用于将复杂的业务逻辑写在 python code 中,用asteval去执行
问题
在服务器上运行项目时,遇到执行 python code 时候,总会出现超过递归的最大深度。
error log:
RuntimeError: maximum recursion depth exceeded while calling a Python obj
而在本地始终复现不了这个错误
解决
最后细致地调试发现,本地的 asteval 的版本是0.9.5 而服务器的 asteval 版本是0.9.7
而在 0.9.7 中引入了 RECURSION_LIMIT
这个条件控制,而且默认将最大递归设置为100。
故此要解决问题,那么要么是降级你的asteval 版本,或者补丁去修改这个递归限制值.
一般写成这样,优化代码的作用估计微乎其微了,所以就没有提优化代码这点了
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。