Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python不导入模块_Python_Function_Python 3.x_Import - Fatal编程技术网

Python不导入模块

Python不导入模块,python,function,python-3.x,import,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

这里有一个函数,用于在另一个进程中运行外部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:未定义全局名称“Foo”
。有人能帮忙吗?

哈,问题是python不知道您的
exec
语句定义了
Foo
,所以它会尝试将其作为全局变量进行查找。要提供线索,请尝试以下方法:

    try:
        Foo = None
        exec("import Programs."+app+".main as Foo")
        Foo.init()
顺便说一句,这里介绍了如何在不使用
exec
的情况下完成所需的操作:

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

我认为这不是一个坏问题,也不是一个过于本地化的问题。别那么高兴,伙计们!并解释感知到的问题,以便海报可以尝试解决它。