实际上我可以使用xlwings在Excel中运行Sympy脚本。 我没有限制,积分,差异,求解等方面的问题......但是我无法运行因子,扩展,简化和三角扩展。我怀疑所有这些功能都在内部链接,因为它们都给了我同样的错误:
RecursionError: maximum recursion depth exceeded while calling a Python object
问题仅在于因子,扩展,简化和三角函数扩展函数。
我在VBA Excel中的代码:
Function factor(func As String)
If TypeOf Application.Caller Is Range Then On Error GoTo failed
factor = Py.CallUDF("pruebasympy", "factor", Array(func), ThisWorkbook, Application.Caller)
Exit Function
failed:
factor = Err.Description
End Function
我在Sympy脚本中的代码(pruebasympy.py):
import xlwings as xw
from sympy import *
@xw.func
@xw.arg('func')
def factor(func):
x = symbols('x')
return str(factor(func))
在Excel中将表达式(x ** 4)-1放入函数" = Factor()"时,错误消息为:
RecursionError: maximum recursion depth exceeded while calling a Python object
我试着用这条线,但不能工作:
import sys
sys.setrecursionlimit(5000)
我做错了什么?
答案 0 :(得分:1)
我认为" RecursiveError"是Sympy或xlwings中的内部错误。错误是使用相同的系统函数名称和def函数。更改def函数名称可以解决问题。