获取python在导入模块时加载的每个文件的路径

2024-09-29 23:19:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个包含python脚本所依赖的所有模块的目录。我希望在python导入这些文件时自动查找它们,而不是手动跟踪所有这些文件。为此,我在sys.meta_path中添加了一个模块查找器:

import sys, imp
class ImportPrint(object):
    def find_module(self, name, path=None):
        toks = name.split(".")
        pre, loc = ".".join(toks[:-1]), toks[-1]
        try: 
            module_info = imp.find_module(loc, path)
        except ImportError:
            module_info = imp.find_module(loc)
        if module_info[0]: module_info[0].close
        print "A", name, module_info[1]
        return None
sys.meta_path = [ImportPrint()]

import mymod1, mymod2, etc..

这几乎可以工作,但是__init__.py文件不是这样找到的。有没有更好的方法来查找它们,或者我应该在找到的文件是目录时就直接添加它们?此方法是否会丢失任何其他文件


Tags: 模块文件pathnameimportinfo目录sys

热门问题