Cri*_*ian 65
模块和包具有__file__包含其路径信息的属性.如果模块是相对于当前工作目录导入的,那么您可能希望获得其绝对路径.
import os.path
import my_module
print(os.path.abspath(my_module.__file__))
Run Code Online (Sandbox Code Playgroud)
use*_*876 11
我一直在用这个:
import inspect
import os
class DummyClass: pass
print os.path.dirname(os.path.abspath(inspect.getsourcefile(DummyClass))
Run Code Online (Sandbox Code Playgroud)
(编辑:这是"我在哪里"的功能 - 它返回包含当前模块的目录.我不太确定这是否是你想要的).
要查找已加载模块的加载路径:
>>> import sys
>>> sys.modules['os']
<module 'os' from 'c:\Python26\lib\os.pyc'>
Run Code Online (Sandbox Code Playgroud)
我可能会迟到,AttributeError在使用__file__属性查找路径时,某些模块会抛出异常。在这种情况下,可以使用__path__来获取模块的路径。
>>> import some_module
>>> somemodule.__path__
['/usr/lib64/python2.7/site-packages/somemodule']
Run Code Online (Sandbox Code Playgroud)