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 に答える