Python 我打电话到sympy的checkodesol有什么问题?

Python 我打电话到sympy的checkodesol有什么问题?,python,sympy,Python,Sympy,我正在学习sympy,想验证ODE的解决方案。我还不太了解Symphy的命名约定 我不想在顶部加载所有包的标准方法,我只想导入Symphy,然后使用显式长名称引用Symphy中的任何其他名称。关于最新的conda-python Python 3.7.3 (default, Mar 27 2019, 22:11:17) [GCC 7.3.0] :: Anaconda, Inc. on linux 打字时 import sympy x = sympy.symbols('x') y = s

我正在学习sympy,想验证ODE的解决方案。我还不太了解Symphy的命名约定

我不想在顶部加载所有包的标准方法,我只想
导入Symphy
,然后使用显式长名称引用Symphy中的任何其他名称。关于最新的conda-python

Python 3.7.3 (default, Mar 27 2019, 22:11:17) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
打字时

import sympy
x   = sympy.symbols('x')
y   = sympy.Function('y')
ode = sympy.Eq(sympy.Derivative(y(x),x),1+2*x)
sol = sympy.dsolve(ode,y(x))
sympy.solvers.ode.checkodesol(ode,sol)
以上给出了误差

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'sympy.solvers.solvers' has no attribute 'ode'
但我不想显式导入
checkodesol
。我只想导入
symphy
,然后使用长名称调用
checkodesol
或任何其他symphy子包,因为这让我在代码中更清楚每个函数的来源(以额外键入一点为代价)


问题是,为什么使用
sympy.solvers.ode.checkodesol
不起作用?

在您链接到的文档的最顶端,它说

这些函数是使用
从Symphy导入*
。这些函数(与下面的提示函数不同) 供Symphy的普通用户使用

然后您可以直接使用
checkodesol(ode,sol)

如果您要导入Symphy,则需要调用

sympy.checkodesol(ode, sol)
sympy.checkodesol(ode, sol)