所以,我一直在尝试编写一个简单的程序,可以动态地导入名称为特定名称的文件夹中的模块。我使用 os
命令进入该目录,并在for循环中迭代所有文件的名称并将其放入变量module_name中,随后运行命令module = __import__(module_name)
。
我的唯一问题是遇到了以下错误:
ImportError: No module named "module_name"
(说出我给定的变量名称作为字符串)。该文件存在,位于提到的目录中,并且在同一目录中import
工作正常。但是,甚至在cd目录中的模块上也不能正常导入。代码如下所示。如果这是一个显而易见的问题,我很抱歉。
import os
class Book():
def __init__(self):
self.name = "Book of Imps"
self.moduleNames = []
# configure path
def initialize(self):
path = os.getcwd() + '/Imp-pit'
os.chdir(path)
cwd = os.walk(os.getcwd())
x, y, z = next(cwd)
# Build Modules
for name in z:
if name[:3] == 'Imp':
module_name = name[:len(name) - 3]
module = __import__(module_name)
def start_sim():
s = Book()
s.initialize()
if __name__ == '__main__':
start_sim()