我在这里有一个函数用于在另一个进程中运行外部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
。有人可以帮忙吗?
答案 0 :(得分:2)
哈,问题是python不知道你的exec
语句定义Foo
,所以它试图将其视为全局。要了解它,试试这个:
try:
Foo = None
exec("import Programs."+app+".main as Foo")
Foo.init()
顺便说一句,以下是您在不使用exec
的情况下执行操作的方法:
Foo = __import__("Programs."+app+".main")