如何在python中动态加载模块

时间:2013-10-30 22:51:24

标签: python python-2.7 python-module

我正在尝试动态加载模块。我已经看到很多关于这个主题的问题 - 但没有人帮助过。

我有这个目录结构:

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')

我总是得到同样的错误'没有名为*'的模块

我做错了什么?

1 个答案:

答案 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'>