我正在使用Python 2.6 / 2.7代码,其中包含以下内容:
try:
import gmpy
gmpy_imported=True
except ImportError:
gmpy_imported=False
if gmpy_imported and gmpy.__file__ is None:
gmpy_imported=False
我可以理解try-except
部分,它用于查看系统上是否已安装gmpy - 如果没有,则执行任何操作。但是,我不明白为什么if gmpy.__file__ is None
检查是必要的;这似乎是多余的。
是否有任何情况下导入包似乎已成功,但包的路径实际上是空的?这次仔细检查是否可以防止安装损坏?
答案 0 :(得分:2)
这项检查没有意义。如果模块/包已成功导入,__file__
将永远不会为空,它就是模块的路径。
答案 1 :(得分:2)
文档说“对于静态链接到解释器的C模块,__file__
属性不存在”,所以我认为这是多余的。除此之外,模块对象还有什么区别。