工作,我發現我的代碼中一個奇怪的循環引用,這裏是最小碼:爲什麼這個圓形進口* *將在Python
ph
|-- mod
| |-- __init__.py
| |-- pkg.py # import mod.sub_mod.sub_pkg
| `-- sub_mod
| |-- __init__.py
| `-- sub_pkg.py # from mod import pkg
`-- main.py
在
mod
,只有pkg.py
和sub_pkg.py
有文件內容。
在main.py
:
import mod.pkg
將導致ImportError
,但
import mod.sub_mod.sub_pkg
效果很好。
當我試圖找到這個最小可重現的例子時,我發現在python 3中,兩個導入都可以工作。 我還發現這個網頁:https://gist.github.com/datagrok/40bf84d5870c41a77dc6但我仍然不知道爲什麼。
也許參見[「導入Python模塊」在effbot.org上](http://effbot.org/zone/import-confusion.htm#circular-imports) – poke