python报错:ImportError: cannot import name ‘XX‘ from......
今天在写python程序的时候报了这个错。一般出现这个错误,不是命名出了问题,就是路径出了问题,由于我的文件中存在多层引用,造成了这个问题。问题原因:我在【A】文件下from B import bb,也就是引入B文件下的bb方法然后【B】文件的bb方法里又调用了【C】文件的cc方法而【C】文件里又import了B文件的bb2方法问题解释:来看如下例子:./test|--main.py|--sub_
·
今天在写python程序的时候报了这个错。一般出现这个错误,不是命名出了问题,就是路径出了问题,由于我的文件中存在多层引用,造成了这个问题。
问题原因:
我在【A】文件下from B import bb,也就是引入B文件下的bb方法
然后【B】文件的bb方法里又调用了【C】文件的cc方法
而【C】文件里又import了B文件的bb2方法
问题解释:
来看如下例子:
./test
|--main.py
|--sub_a.py
|--sub_b.py
# main.py
from sub_a import x
print(x + 1)
# sub_a.py
from sub_b import b
a=1
x=a+b
print(x)
# sub_b.py
from sub_ a import a
b=a+1
以上程序运行会报cannot import name ‘a’的错
由【main.py】进入【sub_a.py】 中执行from sub_b import b语句,在这里程序进入【sub_b.py】中执行,【sub_a.py】程序暂停执行,此时需要在【sub_b. py】使用的【sub_a.py 】中的a = 1 变量还没有生成,因此出现了.上述错误。
要解决错误也很简单,我们只要保证在导入模块中内容时,此内容在程序执行到此处时已定义,把【sub_a.py】修改成以下形式:
a =1
from sub_b import b
x=a+b
更多推荐
已为社区贡献5条内容
所有评论(0)