【发布时间】:2018-07-19 22:29:17
【问题描述】:
关于堆栈溢出的答案都没有帮助我解决这个问题: Load module from string in python
我的文件结构如下: -运行.py -/板 -Brd1.py -Brd2.py -Brd3.py
我想要完成的是为 board 目录中的每个模块调用“运行”函数。每个模块都有这个“运行”功能。这是我在 run.py 中的代码:
import os
import sys,imp
import inspect
for item in os.listdir("boards"):
if item.startswith("Brd") and item.endswith(".py"):
curr_module = imp.new_module(item)
curr_module.run()
这是我得到的错误:
AttributeError: 'module' 对象没有属性 'run'
但是,当我明确地做这样的事情时:
from boards import Brd1
Brd1.run()
完美运行。 有趣的是,代码:
import os
import sys,imp
import inspect
for item in os.listdir("boards"):
if item.startswith("Brd") and item.endswith(".py"):
curr_module = imp.new_module(item)
print dir(curr_module)
只打印: ['__ 文档 __', '__ 名称 __', '__ 包 __ ']
还有什么可以做我想要完成的事情吗?我要马上解决这个问题吗?
【问题讨论】:
-
“堆栈溢出的答案都没有帮助我解决这个问题”并没有真正帮助我们。你看了哪些问题和答案?他们怎么没有帮助?