我在一个目录中有 2 个文件:loader.py 和 mod1.py。Loader.py 动态实例化 mod1.py 中的一个类并在其上调用一个方法。这是 mod1.py
class MyClass1:
def run(self):
print "Class1 running"
这是装载机:
def run():
mod = __import__('mod1')
cls = getattr(mod, 'MyClass1')
inst = cls()
inst.run()
run()
如果我直接运行 python: "python loader.py" 我看到:
Class1 running
这是你所期望的。如果我然后在结构下运行它:“fab -f loader.py run”我看到
Class1 running
Class1 running
Done.
这是有道理的,run() 由fabric AND loader.py 在fabric 加载时调用。
但是,如果我删除了在 loader.py 中运行的显式调用,因此它只在结构下调用一次,我得到
ImportError: No module named mod1
为什么在织物下跑步会有所不同?有没有办法在织物下进行这项工作?