程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【Python】most likely due to a circular import 循環導入的解決方法

編輯:Python

module的導入機制

在import的一個module A時,會先導入這個module A裡的所有import,以及module A所在的__init__.py裡的其他module,導入完這些才算完成module A的導入。

循環導入的產生

在導入module A的過程中,其他包導入了module本身

解決方法

  1. 將引發循環導入的包放到使用到它的函數裡面導入,即在運行到這個包時導入
  2. 如果這個模塊只是用在type hint,僅作靜態檢測,運行時未使用。可以使用如下方法。
from __future__ import annotations # 一定要放在文件開頭
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from module x import xxx
  1. 將涉及到的包獨立放一個文件夾,避免其他導入的連帶導入

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved