Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.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_Import - Fatal编程技术网

Python导入问题

Python导入问题,python,import,Python,Import,我有一些问题,在我理解python如何导入模块时,这些问题看起来像是一些空白。例如,我有一个名为somemodule的模块,它有两个子模块a.py和b.py。 a.py的内容: from somemodule.b import b def a(): b() print "I'am A" 内容b.py from somemodule.a import a def b(): a() print "I'am B" 现在,如果我想调用我得到的任何模块Impor

我有一些问题,在我理解python如何导入模块时,这些问题看起来像是一些空白。例如,我有一个名为
somemodule
的模块,它有两个子模块
a.py
b.py

a.py的内容:

from somemodule.b import b

def a():
    b()
    print "I'am A"
内容b.py

from somemodule.a import a

def b():
    a()
    print "I'am B"

现在,如果我想调用我得到的任何模块
ImportError

导入错误:无法导入名称b


我怎么了?

这里有递归导入: a导入b哪个导入a哪个导入b哪个


此外,请确保文件夹
somemodule

中有一个
\uuuu init\uuuuuu.py
文件,您有一个循环引用。导入模块a,然后导入模块b。但是模块b从模块a导入函数a。但在它试图这样做的时候,a还没有被定义。请记住,Python导入可以有效地执行模块

解决方案似乎是移动函数定义,使它们出现在导入之前


或者,正如@lazyr所建议的,将import语句移动到函数内部,以便在调用函数时进行导入,而不是在模块导入时进行导入。

您的文件布局是什么?如果a.py和b.py并排,为什么要导入某个模块?一些读数:或将其中一个导入移动到函数定义中。@lazyr是的,这可能更好,但递归导入是完全可能的