错误:
AttributeError: partially initialized module 'B' has no attribute 'B1' (most likely due to a circular import)
问题可能是因为:
-
模块重组:重新组织代码结构,以消除循环导入。考虑将共享的函数或类移动到单独的模块,并在需要的地方导入。
-
延迟导入:如果可能,将导入语句放在使用模块的函数或方法内部,而不是放在模块的顶部。这样可以推迟导入,直到需要使用模块时再进行导入,从而避免循环导入问题。
-
导入位置调整:在相关的模块之间,调整导入语句的位置,确保在需要使用的位置导入模块,而不是在模块的顶部导入。
我的情况:
我的项目有ABC三个代码文件。A是我接受数据的接口集合,BC写的是实现A接口的某些单元功能的代码。
现在我在B代码里临时调用了C测试某些功能,然后运行B代码,就会报这个错误。
解决:不要直接运行B代码,而应该是运行A代码。因为A代码里有使用带BC代码,所以应以A为主代码,运行。