当有同名的包时,如何在 Python 3 中加载模块?
Posted
技术标签:
【中文标题】当有同名的包时,如何在 Python 3 中加载模块?【英文标题】:How to load a module in Python 3 when there is a package with the same name? 【发布时间】:2020-03-16 20:09:51 【问题描述】:在处理一些遗留 Python 包时,我注意到有一个子包隐藏一个具有相同名称的模块。这是显示问题的简化文件层次结构:
t/
t/__init__.py
t/u/
t/u.py
t/u/__init__.py
如你所见,有一个python模块t/u.py
还有一个子包t/u/
看起来像一个标准的import
语句加载子包:
$ python3
Python 3.5.2 (default, Oct 8 2019, 13:06:37)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import t.u
__init__.py
>>>
但是,有没有办法导入模块 t/u.py
来代替?
【问题讨论】:
【参考方案1】:也许 from t import u 和 from t.u import u 有效
【讨论】:
以上是关于当有同名的包时,如何在 Python 3 中加载模块?的主要内容,如果未能解决你的问题,请参考以下文章