Python3: different behaviour between import and importlib.import_module?
我无法动态导入一个模块,在代码中导入该模块没有问题,也不知道为什么。
我有以下几点:
1 2 | > ls lib __init__.py main.py |
init文件为空。以下工作:
1 2 3 4 5 6 7 | > python3 Python 3.4.3 (default, Oct 14 2015, 20:28:29) [GCC 4.8.4] on linux Type"help","copyright","credits" or"license" for more information. >>> import lib.main >>> lib.main.sayyay() yay |
号
以下内容不起作用:
1 2 3 4 5 6 7 8 9 10 11 | > python3 Python 3.4.3 (default, Oct 14 2015, 20:28:29) [GCC 4.8.4] on linux Type"help","copyright","credits" or"license" for more information. >>> import importlib >>> importlib.import_module("lib.main") <module 'lib.main' from '/some/path/lib/main.py'> >>> lib.main.sayyay() Traceback (most recent call last): File"<stdin>", line 1, in <module> NameError: name 'lib' is not defined |
我已经阅读了importlib文档以及下面的几个答案,例如,如何使用importlib.import_模块在python中导入模块,以及从字符串动态导入文件中的方法。
但我错过了什么?
1 2 | >>> lib_main = importlib.import_module("lib.main") >>> lib_main.sayyay() |