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

Python如何从resources/user导入models/user的UserModel并解决导入报错

Python跨模块导入报错解决方案

错误原因

  • Cannot find reference 'models' in 'code.py'错误:你的项目根目录下不存在code层级目录,导入路径多写了不存在的code前缀,IDE/编译器无法匹配到对应路径
  • ImportError: attempted relative import beyond top-level package错误:你直接将resources/user.py作为入口脚本运行,此时Python会自动把脚本所在的resources目录标记为顶级包,无法识别到上层目录的models文件夹

可用解决方案

方案1:调整运行方式(最推荐,无需修改代码)

不要直接执行python resources/user.py,切换到项目根目录后,用模块方式运行脚本即可适配你写的相对导入逻辑:

python -m resources.user

方案2:手动添加根目录到Python搜索路径

如果需要直接运行resources/user.py脚本,在文件最开头先添加路径配置代码,后续用绝对导入即可:

import sys
import os
# 自动获取项目根目录路径并加入Python搜索列表
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

# 直接写根目录下的路径导入即可
from models.user import UserModel

方案3:标准化项目结构(适合长期维护项目)

在外层新增项目根包目录,调整结构如下:

└── your_project_name  # 替换为你的项目名
    ├── __init__.py
    ├── models
    │   ├── __init__.py
    │   └── user.py
    └── resources
        ├── __init__.py
        └── user.py

将your_project_name的上层目录加入系统PYTHONPATH环境变量,之后全项目统一用绝对导入即可:

from your_project_name.models.user import UserModel

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:36:05