欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Python 导入包失败,提示 "很可能是由于循环导入"。

最编程 2024-05-09 21:30:26
...

详细报错信息如下:

ImportError: cannot import name 'DoReplace' from partially initialized module 'common.do_replace' (most likely due to a circular import) (D:\workxxx\\xxxx_work\common\do_replace.py)

python-BaseException

报错的意思:

most likely due to a circular import:很多可能是循环引用导致失败

开始对这个错误没有概念,什么是循环引用导致引入失败

后面通过一篇文章,大致了解到循环引入,大概是两个导入A和B,A引用了B,B又引用了 A,导致了循环

参考文章:https://blog.****.net/weixin_44858471/article/details/107134456?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-5.pc_relevant_default&spm=1001.2101.3001.4242.4&utm_relevant_index=7

解决方案:

调整代码的位置,解决循环引用的关系

  • 去掉DoReplace(),里面引用HttpOms()的代码
  • 将HttpOms(),放回到当前文件里面使用

修改前:

DoReplace文件:
        HttpOms().get_billcode() 
        QH_billcode = com_obj.qh_billcode
        smallbillcode = commonFun.create_bill_no()

修改后

DoReplace文件: 
        QH_billcode = com_obj.qh_billcode
        smallbillcode = commonFun.create_bill_no()

 

调整后的HttpOms()的代码

HttpOms().get_billcode()
param = DoReplace().replace_create_posorder(param_source)