Python 導入包失敗,提示“most likely due to a circular import”


詳細報錯信息如下:

 

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.csdn.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)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM