Python: "导入posix" 问题

6 投票
3 回答
3191 浏览
提问于 2025-04-16 19:45

如果我导入了 os 模块,我可以运行以下代码来推测 os.py 的位置。

>>> import os
>>> print os.__file__
/usr/lib/python2.6/os.pyc

但是,当我导入 posix 时,它没有 __file__ 这个属性。这是因为它是作为 Python 运行时的一部分实现的,而不是作为标准库吗?

我怎么能仅通过 Python 的官方文档找到更多这样的信息呢?

3 个回答

1

你还可以使用'inspect'模块来查找关于Python模块的信息,比如源文件的路径等等。例如:

import inspect
import os
inspect.getsourcefile(os)
'/usr/local/lib/python2.7/os.py'

inspect.getsourcefile(inspect)
'/usr/local/lib/python2.7/inspect.py'

import sys        
inspect.getsourcefile(sys)
Traceback (most recent call last):
[...]
raise TypeError('{!r} is a built-in module'.format(object))
TypeError: <module 'sys' (built-in)> is a built-in module
3

以交互方式运行Python。

>>> import posix
>>> help(posix)

那里有很多有用的东西。

FILE
    (built-in)
7

这是一个C语言模块。它可以直接编译进Python的程序里,也可以编译成一个共享库。在你的情况下,它是被编译进去了。

官方文档建议不要直接导入这个模块,而是应该通过os这个模块来使用它提供的功能。

撰写回答