我正在尝试动态加载模块。我已经看到很多关于这个主题的问题 - 但没有人帮助过。
我有这个目录结构:
root
|-- tests
|---- test_modules
|------ modules (files=test.py, __init__.py)
|-------- module1 (files=module.py, __init__.py)
|-------- module2 (files=module.py, __init__.py)
我想将module1和module2导入模块目录下的test.py。
我正在尝试使用此变体:
module1 = __import__('modules.module1.module', fromlist=['module'])
or
module1 = __import__('modules.module1.module')
我总是得到同样的错误'没有名为*'的模块
我做错了什么?
答案 0 :(得分:0)
试试这个:
import importlib
module1 = importlib.import_module('module1.module')
module2 = importlib.import_module('module2.module')
尽管如此,__import__
也应该有效。你只需要取出"模块"在开头,就像这样(我已经为你建立了一个类似的目录结构):
In [3]: __import__('module1.module')
Out[3]: <module 'module1' from 'module1/__init__.py'>