我有一个代码,它有两个Python函数,run()和dudt(u,t,...)。 run调用一个C函数odepack_odeint,它调用一个Fortran子例程LSODA,它调用另一个调用dudt的C函数ode_function。如果dudt中有错误,可以使用PyErr_Print()通过ode_function打印,但我无法弄清楚如何告诉代码停止执行。我试过了,
PyErr_Print()
PyErr_SetString(errobj, message)
在ode_function中,但代码段为segfaults。据我了解,接下来应该发生的是ode_function返回NULL或-1或其他东西。但是,LSODA希望ode_function无效。
这是尝试根据我之前询问的this question修补scipy.integrate.odeint。
答案 0 :(得分:0)