如何检索模块的路径?

2022-09-05 01:10:23

我想检测模块是否已更改。现在,使用inotify很简单,您只需要知道要从中获取通知的目录即可。

如何在python中检索模块的路径?


答案 1
import a_module
print(a_module.__file__)

实际上会给你加载的.pyc文件的路径,至少在Mac OS X上是这样。所以我想你可以做到:

import os
path = os.path.abspath(a_module.__file__)

您还可以尝试:

path = os.path.dirname(a_module.__file__)

获取模块的目录。


答案 2

python中有模块。inspect

官方文档

inspect 模块提供了几个有用的函数来帮助获取有关实时对象(如模块、类、方法、函数、回溯、框架对象和代码对象)的信息。例如,它可以帮助您检查类的内容,检索方法的源代码,提取函数的参数列表并设置其格式,或者获取显示详细回溯所需的所有信息。

例:

>>> import os
>>> import inspect
>>> inspect.getfile(os)
'/usr/lib64/python2.7/os.pyc'
>>> inspect.getfile(inspect)
'/usr/lib64/python2.7/inspect.pyc'
>>> os.path.dirname(inspect.getfile(inspect))
'/usr/lib64/python2.7'

推荐