从内部获取Python模块目录

时间:2011-09-28 00:04:46

标签: python module path directory

我有一个Python模块,我想从内部获取该模块目录。我想这样做,因为我有一些文件,我想引用相对于模块。

4 个答案:

答案 0 :(得分:3)

首先,您需要在内部获得对模块的引用。

mod = sys.__modules__[__name__]

然后您可以使用__file__转到模块文件。

mod.__file__

它的目录是dirname

答案 1 :(得分:3)

当你进入模块时,你所需要的只是:

import os
path_to_this_module = os.path.dirname(__file__)

但是,如果有问题的模块实际上是您的程序入口点,那么__file__将只是文件的名称,您需要扩展路径:

import os
path_to_this_module = os.path.dirname(os.path.abspath(__file__))

答案 2 :(得分:2)

我认为这就是你要找的东西:

import <module>
import os
print os.path.dirname(<module>.__file__)

答案 3 :(得分:1)

您应该使用pkg_resourcesresource* family函数可以完成您需要的所有操作,而无需使用文件系统。

import pkg_resources
data = pkg_resources.resource_string(__name__, "some_file")