查找Python的数学和CMath模块的特定版本

Finding the Specific Version of Python's Math and CMath Modules

这个问题应该相对简单快捷。我只是想知道我有哪些版本的python的mathcmath包。

不幸的是,我没有使用pip安装它们。我已经阅读了这篇有用的堆栈文章(因为我以前不知道pip freeze)。但是,这两个包都不在列表中。

我试过谷歌,四处看看,但没用。我在口译员中试过以下方法:

1
2
3
import math
print math.__version # error
print math.version # error

我还尝试使用python的help命令,并浏览文档,但再一次找不到任何关于如何检测我安装的版本的信息。

我不太确定还能尝试什么。有什么想法吗?再次感谢你的时间!


你不能。mathcmath都没有任何特定的版本。它们与您使用的Python版本相关。

如果是因为您想检查函数是否存在,那么我们假设在3.2中添加了isfinite。然后你可以使用hasattr来实现:

1
print(hasattr(math,"isfinite"))

或使用sys.version_info

1
2
has_infinite = sys.version_info >= (3, 2)
print(has_infinite)

因为我使用的是python3.6,所以这两个版本都打印了True


绝对同意@vallentin

如果您想知道可用的属性或方法,可以使用dir()函数。dir()是python 3中一个强大的内置函数,它返回任何对象(如函数、模块、字符串、列表、字典等)的属性和方法的列表。

1
2
import math
print(dir(math))

它将从math包返回可用属性和方法的列表。