【发布时间】:2011-05-24 04:36:59
【问题描述】:
当我使用导入模块时
import module_name
是否可以查看该模块在我的硬盘中的哪个位置?
【问题讨论】:
标签: python
当我使用导入模块时
import module_name
是否可以查看该模块在我的硬盘中的哪个位置?
【问题讨论】:
标签: python
值得一提的是,包有__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']
【讨论】:
__file__ 在那里(package/__init__.pyc),因为它应该是,因为“包”导入只是一个名为__init__ 的模块。 (package.__path__ == ['package'])
试试:module_name.__file__。
如果您想“检查”一个对象,请使用:inspect
【讨论】:
import module_name
module_name.__file__
【讨论】:
您可以使用模块的 file 属性来查找位置。
import sys
print sys.__file__
【讨论】: