如何简化Python项目导入路径?实现深层类的短路径导入
实现简化导入的方案
要实现from proj.sub_pkg_two import D, E的简化导入,只需通过修改两个层级的__init__.py文件完成命名空间转发即可:
步骤1:在sub_pkg_two的__init__.py中暴露类
编辑proj/pkg_two/sub_pkg_two/__init__.py,将D和E导入到该子包的顶层命名空间:
from .module_d import D from .module_e import E
这一步让sub_pkg_two包本身直接对外提供D和E类,无需再深入到具体模块。
步骤2:在项目根包的__init__.py中转发sub_pkg_two
编辑proj/__init__.py,将pkg_two下的sub_pkg_two导入到根包proj的命名空间:
from .pkg_two import sub_pkg_two
这一步相当于把sub_pkg_two从pkg_two的子包“提升”到proj的直接子包层级,让外部可以通过proj.sub_pkg_two直接访问它。
验证导入
完成上述修改后,在foo.py或pkg_one的模块中,就可以用目标方式导入:
from proj.sub_pkg_two import D from proj.sub_pkg_two import E
注意:确保包含proj文件夹的目录在Python的sys.path中,直接在该目录下运行脚本时默认满足此条件。
内容的提问来源于stack exchange,提问作者winter
相关产品推荐
相关产品推荐

