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

运行setup.py时遇ImportError:无法从'schema'导入'Base'

问题分析与解决

问题根源

从回溯信息可以明确:运行setup.py时,customers/customers_db.py里的from schema import Base, Contact, Address语句,导入的是虚拟环境site-packages目录下的第三方库schema,而非你自己编写的customers/schema.py。

单独运行customers_db.py时无错误,是因为此时Python会将customers目录加入模块搜索路径,优先加载同目录下的schema.py;但运行setup.py时,当前工作目录是src,Python会先搜索site-packages中的第三方库,导致与自定义模块重名冲突。

解决方案

有两种可靠的修改方式,任选其一即可:

方式1:使用相对导入

在customers_db.py中,改用相对导入指定同包内的schema模块:

from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
import os
# 相对导入同目录的schema模块
from .schema import Base, Contact, Address

方式2:使用绝对导入

明确指定导入customers包下的schema模块:

from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
import os
# 绝对导入自定义的schema模块
from customers.schema import Base, Contact, Address

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 05:24:58