Python不导入模块

时间:2013-06-14 19:52:20

标签: python function python-3.x import

我在这里有一个函数用于在另一个进程中运行外部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。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

哈,问题是python不知道你的exec语句定义Foo,所以它试图将其视为全局。要了解它,试试这个:

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

顺便说一句,以下是您在不使用exec的情况下执行操作的方法:

Foo = __import__("Programs."+app+".main")