我有一个像这样布置的包裹foo
:
.
└── foo
├── bar.py
└── __init__.py
但是,我的foo
中还有另一个名为$PYTHONPATH
的软件包,其布局如下:
.
└── foo
├── qux.py
└── __init__.py
我真正关心的是从前者导入bar
,并从后者导入qux
。
是否有一种合理的清洁方法可以解决冲突?具体来说,要利用尽管它们具有相同的名称而使它们具有不同的结构这一事实吗? (具体来说,第一个包含嵌套的bar
,第二个包含嵌套的qux
)。
例如,如果有一种方法可以import foo
并从列表中获取匹配的foo
包,而不仅仅是{{1 }},我可以遍历它们并测试$PYTHONPATH
。
有理由回答这是行不通的,并且没有办法处理这种名称冲突-即hasattr(package, 'bar')
中有多个名称完全相同的软件包。