【问题标题】:Python not importing modulesPython不导入模块
【发布时间】:2013-06-14 19:52:20
【问题描述】:

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

【问题讨论】:

  • 恕我直言,这既不是一个坏问题,也不是太本地化。伙计们,不要那么高兴!并解释感知到的问题,以便发布者可以尝试解决它。​​

标签: python function python-3.x import


【解决方案1】:

哈,问题是python不知道你的exec语句定义了Foo,所以它试图将它作为一个全局查找。要找出线索,试试这个:

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

顺便说一下,以下是不使用exec 的方法:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-07
    • 2015-10-06
    • 2015-01-19
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多