2011-09-28 74 views
1

我有一个Python模块,我想从它自己的内部获取模块目录。我想这样做是因为我有一些我想参考的模块文件。从内部获取Python模块Dierctory

+1

这可能重复吗? http://stackoverflow.com/questions/247770/retrieving-python-module-path –

回答

3

首先,你需要去里面本身模块的引用。

mod = sys.__modules__[__name__] 

然后你可以使用__file__去模块文件。

mod.__file__ 

其目录是dirname

+0

'__file__'属性是我正在寻找。 – rectangletangle

2

我认为这是你在找什么:

import <module> 
import os 
print os.path.dirname(<module>.__file__) 
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__)) 
1

您应该使用pkg_resources此,功能的resource* family做只是你需要,而不必与文件系统渣土的事情了。

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