Python: 导入成功时__file__会是None吗?
我正在处理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
;这看起来有点多余。
有没有可能在导入一个库时,看起来成功了,但实际上这个库的路径是空的呢?这个双重检查是为了防止安装损坏吗?
2 个回答
2
文档上说“对于静态链接到解释器中的C模块,__file__
属性是不存在的”,所以我觉得这个属性是多余的。而且,这有什么区别呢,模块对象本身已经存在了。
2
这个检查没有意义。如果模块或包已经成功导入,__file__
的值绝对不会是空的,它会是这个模块的路径。