在编程运行时,如何动态地将Python模块添加到软件包中?
要动态导入Python模块,可以使用importlib包的import_module(moduleName)函数。您需要将moduleName作为字符串。例如,
>>> from importlib import import_module >>> moduleName = "os" >>> globals()[moduleName] = import_module(moduleName)
如果要动态导入模块列表,甚至可以从for循环中调用它。例如,
>>> import importlib >>> modnames = ["os", "sys", "math"] >>> for lib in modnames: ... globals()[lib] = importlib.import_module(lib)
该globals()
调用返回的字典。我们可以为每个库设置lib键,作为导入模块时返回给我们的对象。
如果您已经导入了软件包,并且现在想动态导入其模块之一,则仍可以使用相同的功能并获得预期的结果。您要导入的模块应具有其全名,而不仅仅是模块名。例如,
>>> import importlib >>> pack = 'datetime' >>> mod = 'date' >>> globals()[pack] = importlib.import_module(pack) >>> globals()[pack + '.' + mod] = importlib.import_module(pack + '.' + mod)