1

我正在尝试动态加载模块。我见过很多关于这个话题的问题——但没有一个有帮助。

我有这个目录结构:

root
|-- tests
|---- test_modules
|------ modules (files=test.py, __init__.py)
|-------- module1 (files=module.py, __init__.py)
|-------- module2 (files=module.py, __init__.py)

我想将 module1 和 module2 导入到 modules 目录下的 test.py 中。

我正在尝试对此使用变体:

module1 = __import__('modules.module1.module', fromlist=['module'])
or
module1 = __import__('modules.module1.module')

我总是收到相同的错误“没有名为 * 的模块”

我究竟做错了什么?

4

1 回答 1

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'>
于 2013-10-30T22:54:51.587 回答