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

Python是否支持导入包?Python2.7自定义包导入报错求助

解决Python 2.7中model.order访问报错的问题

我来帮你梳理下这个报错的原因和解决办法:

首先,这个AttributeError的核心原因是Python 2.7的包导入机制:当你执行import model时,Python只会加载model/__init__.py文件,并不会自动导入包内的子模块(比如order.py)。所以此时model这个模块对象里并没有order这个属性,自然就会报错啦。

下面给你几个可行的解决方案:

方案1:修改model包的__init__.py文件

在model/__init__.py中显式导入order模块,这样当其他文件import model时,order模块会被自动加载,model.order就能正常访问了。

你可以在__init__.py中添加以下任意一行:

# 绝对导入
import model.order
# 或者相对导入(Python 2支持这种写法)
from . import order

方案2:在cart.py中直接导入目标模块/类

如果不需要通过model包来间接访问,直接在cart.py里导入order模块或者MyOrder类会更直接,也能绕过这个问题:

# 导入order模块
from model import order
# 然后直接使用
my_order = order.MyOrder()

# 或者更直接,直接导入MyOrder类
from model.order import MyOrder
my_order = MyOrder()

方案3:在cart.py中先显式导入model.order

如果你坚持要通过model.order的方式访问,也可以在cart.py里先单独导入model.order,这样model模块对象就会注册order这个属性:

import model
# 先导入model.order,让model模块加载这个子模块
import model.order
# 现在就能正常访问了
my_order = model.order.MyOrder()

小建议

一般来说,方案1适合你希望model包对外暴露order模块的场景;方案2则是代码更简洁的常用写法,推荐优先考虑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:23:02