2012-09-02 44 views

回答

24

正如其他答案所说,你可以使用__file__。但是,请注意,如果其他模块与程序位于同一目录中,则不会提供完整路径。所以为了安全起见,做这样的事情:

>>> import os 
>>> import math 
>>> os.path.abspath(math.__file__) 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/math.so' 

这里有一个模块我做了所谓的checkIP一个例子来说明为什么你需要得到ABSPATH(checkIP.py是在当前目录):

>>> import os 
>>> import checkIP 
>>> os.path.abspath(checkIP.__file__) 
'/Users/Matthew/Programs/checkIP.py' 
>>> checkIP.__file__ 
'checkIP.py' 
1

你可以试试:

import os 
print os.__file__ 

上看到模块的位置。

1

如果它是您的PYTHONPATH目录树中的一个模块(并且可以通过在其目录和父目录中放置__init__.py),然后调用其路径属性。

>>>import sample_module 
>>>sample_module.__path__ 
['/absolute/path/to/sample/module']