首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎么知道拼音是使用gmpy还是gmpy2?

我怎么知道拼音是使用gmpy还是gmpy2?
EN

Stack Overflow用户
提问于 2014-10-24 16:37:02
回答 2查看 1.3K关注 0票数 2

我知道

代码语言:javascript
复制
import mpmath as mp
print mp.libmp.BACKEND

但是,如果我没有弄错,它就不会说我是在使用gmpy还是gmpy2。

而且,我认为每次使用更新版本的东西时,都不会得到它旁边的版本号,但是由于我可以分别使用import gmpygmpy2,我有点担心我可能在使用旧版本的gmpy。

谢谢

更新:

我还试了以下几种让我感到困惑/担心的方法。

代码语言:javascript
复制
import mpmath as mp
import gmpy as gm
import gmpy2 as gm2
print mp.mpf('1') == gm.mpf('1')
# Result is FALSE
print mp.mpf('1') == gm2.mpfr('1')
# Result is FALSE
print gm.mpf('1') == gm2.mpfr('1')
# Result is FALSE
print mp.mpf('1') == 1
# Result is TRUE
print gm.mpf('1') == 1
# Result is TRUE
print gm2.mpfr('1') == 1
# Result is TRUE

什么鬼东西?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-24 17:19:51

mpmath将首先尝试导入gmpy2

虽然您可以同时导入gmpygmpy2,但由于gmpygmpy2彼此不知道,所以它不是一个受支持的场景。

我同时维护了gmpygmpy2,但是我认为gmpy已经过时了,应该使用gmpy2

票数 9
EN

Stack Overflow用户

发布于 2017-11-20 14:33:27

我确信这是可能的,因为python将它导入的所有模块都记录在字典中。如果你看到了,你就能看到

代码语言:javascript
复制
   import sys
   print(sys.modules)

这是一个字典,它允许它查看它以前是否导入了一个模块,所以当它看到一个import语句时,它就不必再这样做了。例如,在我的代码中,我在很多地方都有import numpy as np,因为其中任何一个地方都可能是第一次请求python导入它。但是导入需要很长时间,所以python不希望每次看到该语句时都这样做。如果numpysys.modules中,它只是假设它已经知道了它需要知道的内容,并跳过了它。

因此,要回答你的问题,请这样做:

代码语言:javascript
复制
import mpmath
import sys
'gmpy2' in sys.modules.keys()

如果你得到了True,你就会在某个地方使用gmpy2。如果mpmathsys是您所导入的唯一东西,那么很可能可以假定mpmath是使用gmpy2的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26552363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档