如何解决某些模块上的 __file__ 返回 None
我使用 for 循环在许多模块上运行 _file_ 函数,对于某些模块,我得到 None。我看到这可能发生在没有 _init_ 文件的文件上,但我无法向那些没有的文件添加 _init_ 文件,因为这是很多文件。
是否有其他选择可以代替使用 _file_ 来获取相同的数据,这样我就不会得到 None ?
解决方法
这个答案可能对你有帮助https://stackoverflow.com/a/9271617/4498470
设置 __file__ = None
的模块可能是用 C 编写的模块。它们是静态链接的。或者,导入系统可能已经从数据库加载到模块中,因此没有指向的“文件”。
我会说如果没有设置 __file__
属性,除非它是一个错误,否则可能是因为该属性对于特定模块毫无意义。
Python 的导入系统非常复杂。您可以在 https://docs.python.org/3.8/reference/import.html?highlight=__file__#import-related-module-attributes 处阅读一些有关 __file__
等属性的信息。
因此,“是否有任何其他选项可以代替使用 file 来获取相同的数据,因此我不会得到 None”的答案可能是否定的。(至少对于 C Python 而言)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。