获取导入模块的文件路径

cnu*_*cnu 53 python

如何获取在python中导入的模块的文件路径.我正在使用Linux(如果重要的话).

例如:如果我在我的家庭目录并导入一个模块,它应该返回我的主目录的完整路径.

Cri*_*ian 65

模块和包具有__file__包含其路径信息的属性.如果模块是相对于当前工作目录导入的,那么您可能希望获得其绝对路径.

import os.path
import my_module

print(os.path.abspath(my_module.__file__))
Run Code Online (Sandbox Code Playgroud)

  • AttributeError: 模块“tensorflow”没有属性“__file__” (4认同)

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)

(编辑:这是"我在哪里"的功能 - 它返回包含当前模块的目录.我不太确定这是否是你想要的).


dF.*_*dF. 6

这将为您提供模块所在的目录:

import foo
os.path.dirname(foo.__file__)
Run Code Online (Sandbox Code Playgroud)


kjf*_*tch 5

要查找已加载模块的加载路径:

>>> import sys
>>> sys.modules['os']
<module 'os' from 'c:\Python26\lib\os.pyc'>
Run Code Online (Sandbox Code Playgroud)


San*_*nju 5

我可能会迟到,AttributeError在使用__file__属性查找路径时,某些模块会抛出异常。在这种情况下,可以使用__path__来获取模块的路径。

>>> import some_module
>>> somemodule.__path__
['/usr/lib64/python2.7/site-packages/somemodule']
Run Code Online (Sandbox Code Playgroud)