当我使用
导入模块时import module_name
是否可以看到我的硬盘中该模块的位置?
答案 0 :(得分:10)
值得一提的是,包具有__file__
属性,该属性指向__init__.py
,它们也有__path__
指向包目录。所以你可以使用hasattr(module_name, '__path__') and module_name.__path__[0] or module_name.__file__
。
示例(在REPL中):
import socket, SOAPpy # SOAPpy is a package
socket.__file__
# .../python2.5/socket.pyc
socket.__path__
# AttributeError: 'module' object has no attribute '__path__'
SOAPpy.__file__
# .../2.5/site-packages/SOAPpy/__init__.pyc
SOAPpy.__path__
# ['.../2.5/site-packages/SOAPpy']
答案 1 :(得分:3)
尝试:module_name.__file__
。
如果您想“检查”某个对象,请使用:inspect
答案 2 :(得分:1)
import module_name
module_name.__file__
答案 3 :(得分:0)
您可以使用模块的文件属性来查找位置。
import sys
print sys.__file__