You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python打包:如何让子模块可从顶层模块直接导入?

解决Python包中导入父模块后无法访问子模块的问题

你遇到的问题核心是:Python默认不会在导入父模块时自动加载其子模块,所以import Top执行后,Top的命名空间里并没有Lower这个属性。

解决方法很直接:

  • 在Top包的__init__.py文件中添加一行显式导入代码:
    from . import Lower
    
    这样当你执行import Top时,Python会自动把Lower子模块导入到Top的命名空间中,之后就能直接通过Top.Lower访问子模块了。

额外说明:你在setup.cfg里配置的package_data中**/*.py属于冗余配置,Python打包工具默认会包含所有.py文件,完全可以删掉这部分内容,packages = find:已经能正确识别所有子包。

修改完__init__.py后,记得重新安装你的包(开发阶段用pip install -e .做可编辑安装更高效),之后再测试就能正常访问了。

内容的提问来源于stack exchange,提问作者Sam Lerman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 05:24:49