如何获取导入模块的绝对路径?
答案 0 :(得分:30)
正如其他答案所说,你可以使用__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 :(得分:3)
您可以尝试:
import os
print os.__file__
查看模块的位置。
答案 2 :(得分:3)
如果它是PYTHONPATH目录树中的模块(并且可以通过在其目录和父目录中放置__init__.py
来访问),则调用其路径属性。
>>>import sample_module
>>>sample_module.__path__
['/absolute/path/to/sample/module']