如何检索模块的路径?

新手上路,请多包涵

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

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

原文由 Cheery 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 320
2 个回答
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__)

获取模块的目录。

原文由 orestis 发布,翻译遵循 CC BY-SA 4.0 许可协议

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'

原文由 Tomas Tomecek 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题