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

Python模块导入疑问:为何import sub无法访问子模块load_me?

问题解答

这是Python的预期行为,你的项目结构没有错误。

原因说明

当执行import sub时,Python只会加载sub包根目录下的__init__.py文件,并不会自动导入包内的子模块(比如load_me.py)。此时sub这个命名空间里只有__init__.py中定义的内容,自然没有load_me这个属性,所以调用sub.load_me.run_me()会抛出AttributeError。

而from sub import load_me是明确指定要导入sub包下的load_me子模块,Python会加载该模块,并将其绑定到当前命名空间(同时也会把load_me作为属性添加到sub包的命名空间中),因此可以正常调用load_me.run_me()。

解决方法

如果想通过import sub后直接访问sub.load_me,可以在sub/__init__.py中添加显式导入语句:

# sub/__init__.py
from . import load_me

这样当你import sub时,load_me模块会被自动加载,就能正常使用sub.load_me.run_me()了。

另外,也可以直接导入子模块:

import sub.load_me
sub.load_me.run_me()

# 或者用别名简化
import sub.load_me as lm
lm.run_me()

内容的提问来源于stack exchange,提问作者benjamin-lgba

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 04:04:52