有时候,需要在运行Python的过程中根据动态参数来导入具体的模块,这可以通过importlib模块来实现。

importlib模块只有一个方法import_module(),它可以接受一个参数或者两个参数,一个参数,说明通过绝对路径来导入模块,如果是两个参数,说明通过相对路径来导入模块,这时第一个参数为相对路径,第二个参数为基准路径。

例如pkg包下面有一个模块mod,还有一个子包subpkg,目录结构如下:

1
2
3
4
5
6
/pkg
__init__.py
mod.py
/subpkg
__init__.py
...

那么通过绝对路径到导入模块的代码如下所示:

1
importlib.import_module("pkg.mod")

而通过相对路径导入模块的代码如下:

1
importlib.import_module("..mod", "pkg.subpkg")