我正在尝试访问文件中的某些函数,该文件是我要使用它们的文件下方的一个目录。我希望以动态方式执行此操作,因为在运行之前我不会知道用户想要使用哪些功能。
例如,我会询问用户特定场景,如果他们请求 1424 场景,我希望能够访问“scenarios/scenario1424.py”文件中的函数。
我希望使用 importlib.import_module(...) 来执行此操作,但我似乎无法让它让我访问这些功能,即使我似乎成功地导入了文件模块。
目录结构:
code/
- main.py
scenarios/
- __init__.py (empty)
- scenario1420.py
- scenario1421.py
- scenario1424.py
在场景文件中,我将定义一堆方法,如下所示:
def run():
.......
def compute():
.......
我似乎能够使用importlib.import_module('scenarios.scenario1424')
(returns <module 'scenarios.scenario1424' from 'scenarios/scenario1424.pyc'>
) 导入模块,但是当我尝试访问类似: 的函数时scenario1424.run()
,我得到一个 NameError ( NameError: name 'scenario1424' is not defined
)。
有什么想法吗?