0

我这里有一个函数可以在另一个进程中运行外部 python 脚本。m 是多处理模块

def run(app,WindowOffX,WindowOffY,WindowWidth,WindowHeight):
    try:
        exec("import Programs."+app+".main as Foo")
        Foo.init()
        p = m.Process(target=Foo.main(WindowOffX,WindowOffY,WindowWidth,WindowHeight))
    except ImportError:
        print("That app doesn't exist!!! O.O")

但这会产生NameError: global name 'Foo' is not defined. 有人可以帮忙吗?

4

1 回答 1

2

哈,问题是python不知道你的exec语句定义Foo,所以它试图将它作为一个全局查找。要提示它,请尝试以下操作:

    try:
        Foo = None
        exec("import Programs."+app+".main as Foo")
        Foo.init()

顺便说一句,这里是你如何在不使用的情况下做你想做的事情exec

Foo = __import__("Programs."+app+".main")
于 2013-06-14T19:54:57.850 回答