Python:如果导入成功,__ file__可以为None吗?

Bor*_*ris 6 python import

我正在使用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
Run Code Online (Sandbox Code Playgroud)

我可以理解这try-except部分,用于查看是否已在系统上安装了gmpy - 如果没有,则执行任何操作.但是,我不明白为什么if gmpy.__file__ is None检查是必要的; 这似乎是多余的.

是否有任何情况下导入包似乎已成功,但包的路径实际上是空的?这次仔细检查是否可以防止安装损坏?

小智 2

这个检查没有任何意义。如果模块/包已成功导入,__file__则永远不会是“无”,它将是模块的路径。