Python复杂子包导入

我在另一个软件包中有一个非常复杂的软件包树,如下所示


A\

    B\

        a.py

        b.py

        c.py

    C\

        a.py

        b.py

        c.py

我希望能够执行import A和访问所有子包和子模块,例如A.B.a.foo()。一种方法是A/__init__.py导入所有A的子包,但是某些子包也导入其他子包(例如,A.C使用from中的东西A.B,导致一个ImportError。我正在寻找的是一种方法from A import B as A.B,即,导入子包,但是仍然将它们绑定到父程序包。是否有一个很好的方法来做到这一点?


慕工程0101907
浏览 140回答 2
2回答

泛舟湖上清波郎朗

你试过了吗:在A.__init__:import Bimport C在B.__init__:import C, a, b, c在C.__init__:import B, a, b, c我用一些测试文件进行了尝试,它似乎工作正常。In [5]: import AIn [6]: A.A.B  A.C  In [6]: A.B.A.B.C  A.B.a  A.B.b  A.B.c  
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python