适用于虚线模块的`imp.find_module`版本

Ram*_*hum 9 python import

是否存在可用于虚线模块名称的现有实现imp.find_module?它不需要是防弹的,如果它在某些情况下不起作用也没关系.但它起作用的案例越多越好.

请不要尝试在答案中实现此功能.我已经实现了它的版本,我问是否有一个现有的实现,因为如果有一个,它可能比我的版本测试得多.

Car*_*nte 5

importlib可能就是你所追求的.特别是功能import_module.该文件说:

importlib.import_module(name, package=None)

导入模块.该参数指定哪些模块在绝对或相对术语(例如无论是进口pkg.mod..mod).如果名称是以相对术语指定的,那么package参数必须设置为包的名称,该包用作解析包名称的锚点(例如import_module('..mod', 'pkg.subpkg')将导入pkg.mod)


Rod*_*Rod 0

我假设您已经尝试过以下文档中的imp.find_module?

此函数不处理分层模块名称(名称包含点)。为了找到 P.M 即包 P 的子模块 M ,请使用 find_module() 和 load_module() 查找并加载包 P ,然后使用 find_module() 并将路径参数设置为 P.__ path__ 。当 P 本身具有点名称时,递归应用此配方。