1、首先你可能是不经意间调用了某个包名,然后添加了点函数,然后突然就报错了,你会很郁闷,明明之前好好的,我也没动什么怎么就from xxx自己的包 imort xx报错了
2、现状:
比如你现在有两个文件,conf.py和common.py
conf
from common import mm_test
if __name__ == '__main__':
mm_test()
common
def mm_test():
pass
运行conf文件可以运行
然后你在conf添加了一个函数,然后在common调用
common
def mm_test():
pass
from conf import yy_test
if __name__ == '__main__':
yy_test()
然后运行common,报错提示:你看路径也没有错啊,怎么就报错,而且也用鼠标左键 + ctrl也能找到对应的函数或者变量
原因是:不能两个包之间来回的调用,具体是因为def __init__函数的作用,具体我也不太清楚
但是为什么会犯这种错误呢,原本我是想将不同类型的数据进行分类,比如config存放数据,common存放方法,但是由于有时候存放的数据不是固定的,是个变量,需要封装成函数或者类,在conf中已经导入了common的某些方法,但是在书写common的某些方法时,又需要调用conf的函数或者一些值,就导致我两边都进行了导入,于是报错了。