你可以重新定义
the
__import__
built-in function
记录开始和结束时间(将其他所有内容委托给原始内置
进口商品
)就是这样
这个
在python中“调整import语句”的方法:重定义
进口商品
!
编辑
:下面是一个简单的例子…:
import sys
import __builtin__
_orgimp = __builtin__.__import__
import logging
FORMAT = "%(asctime)-15s %(message)s"
logging.basicConfig(format=FORMAT, level=logging.INFO)
def __import__(name, *a):
r = sys.modules.get(name)
if r is not None: return r
logging.info('import bgn %s', name)
r = _orgimp(name, *a)
logging.info('import end %s', name)
return r
__builtin__.__import__ = __import__
import pyparsing
这在我的系统上显示:
2010-08-24 08:36:39,649 import bgn pyparsing
2010-08-24 08:36:39,652 import bgn weakref
2010-08-24 08:36:39,652 import bgn _weakref
2010-08-24 08:36:39,653 import end _weakref
2010-08-24 08:36:39,653 import end weakref
2010-08-24 08:36:39,654 import bgn copy
2010-08-24 08:36:39,655 import bgn org.python.core
2010-08-24 08:36:39,656 import end copy
2010-08-24 08:36:39,675 import end pyparsing
当然,您可以解析这个日志来显示嵌套(哪个模块首先导入了哪些其他模块)
和
“尝试导入”失败(此处为
org.python.core
从
copy
毫无疑问,在
try
/
except
语句)以及每次导入开始和结束的时间(后者仅当它确实结束时,当然,如果失败则不是——很容易调整
尝试
/
finally
或者任何你喜欢的行为!-)