已安装 sympy,但未找到 sympy.mpmath

sympy installed, however sympy.mpmath not found

我想在sympy中使用jacobDN功能,所以我下载它并python setup.py install它,成功。

当我想像 documentation 那样使用它时:

>>> from sympy.mpmath import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named mpmath
>>> 

从 sympy 导入所有内容成功:

>>> from sympy import *
>>> 

然后我单独安装了mpmath,然后我就可以使用mpmath的ellipfun了。但是显示了一个烦人的 mpf

>>> from mpmath import *
>>> ellipfun('dn',0.5,0.5)
mpf('0.94297242577738571')
>>> 

问题是如何在sympy.mpmath下使用ellipfun?如何检查我的安装缺陷?

以上解决方案最好!如果不能,我怎样才能像使用普通函数一样在 mpmath 中使用 ellipfun?

sympy安装成功的证据

-> ~$ pip show sympy
---
Name: sympy
Version: 0.7.7.dev
Location: /usr/local/lib/python2.7/dist-packages/sympy-0.7.7.dev-py2.7.egg
Requires: mpmath

-> ~$ pip install --upgrade sympy
Requirement already up-to-date: sympy in /usr/local/lib/python2.7/dist-packages/sympy-0.7.7.dev-py2.7.egg
Requirement already up-to-date: mpmath>=0.19 in /usr/local/lib/python2.7/dist-packages/mpmath-0.19-py2.7.egg (from sympy)
Cleaning up...

我建议使用非开发版本。 SymPy 0.7.6 是最后一个将 mpmath 与 SymPy 打包在一起的版本。将来它将是一个依赖项。由于您安装了开发版本,因此您必须独立安装 mpmath。

在您安装的 SymPy 开发版本中,sympy.mpmath 已被删除。 mpmath 现在是一个外部库,所以你需要单独安装和导入它,正如你所做的那样。

这两个版本完全相同(有一段时间没有任何 mpmath 版本)。

据我所知,mpmath 不支持 numpy 数组。如果你想这样做,你需要使用 scipy.special。如果您对多精度浮点数(超出机器精度)感兴趣,则只应使用 mpmath。如果您对此感兴趣,您还可以使用 sympy.Float,它是 mpf 的包装器,可以很好地与 SymPy 对象一起使用。