【发布时间】:2011-11-26 11:29:05
【问题描述】:
我有一个 Python 模块,我想从其内部获取该模块目录。我想这样做是因为我有一些我想相对于模块引用的文件。
【问题讨论】:
-
这个可能重复吗? stackoverflow.com/questions/247770/…
标签: python module path directory
我有一个 Python 模块,我想从其内部获取该模块目录。我想这样做是因为我有一些我想相对于模块引用的文件。
【问题讨论】:
标签: python module path directory
首先,您需要获取对自身内部模块的引用。
mod = sys.__modules__[__name__]
然后你可以使用__file__ 来获取模块文件。
mod.__file__
它的目录是那个dirname。
【讨论】:
__file__ 属性是我正在寻找的。span>
因为你在模块中,所以你需要的是:
import os
path_to_this_module = os.path.dirname(__file__)
但是,如果有问题的模块实际上是您的程序入口点,那么 __file__ 将只是文件的名称,您需要扩展路径:
import os
path_to_this_module = os.path.dirname(os.path.abspath(__file__))
【讨论】:
我想这就是你要找的:
import <module>
import os
print os.path.dirname(<module>.__file__)
【讨论】:
您应该为此使用pkg_resources,函数的resource* family 几乎可以完成您需要的所有事情,而无需处理文件系统。
import pkg_resources
data = pkg_resources.resource_string(__name__, "some_file")
【讨论】: