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

Python同级目录导入模块报attempted relative import beyond top-level package错误如何解决

报错原因

你直接右键运行单文件脚本时,Python会将当前运行脚本所在的目录xxxx/src/FiveInch/800x480/识别为顶级包目录,不会向上识别更高层级的包结构。XMLHelper.py中的from ..Common import BaseScreen是尝试访问800x480目录的上级目录中的Common包,自然超出了当前识别的顶级包范围,触发报错。

解决方案

  • 方案1(推荐,适配PyCharm开发场景)
    1. 右键项目根目录下的src文件夹,选择Mark Directory as → Sources Root,让PyCharm将src目录加入Python导入搜索路径
    2. 打开ResultSettingScreen.py的运行配置,将运行模式从脚本路径改为模块名称,填入完整模块路径FiveInch.800x480.ResultSettingScreen后重新运行即可。
  • 方案2(兼容直接运行脚本的场景)
    在ResultSettingScreen.py文件的最开头加入以下代码,手动将上级目录加入Python搜索路径:
    import sys
    import os
    sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
    
    同时将XMLHelper.py中的相对导入改为绝对导入:
    from Common import BaseScreen
    
  • 方案3(包发布场景)
    如果你的项目是作为第三方包开发使用,不要在子模块中编写直接运行的入口逻辑,统一在项目根目录编写入口脚本,所有导入统一使用绝对路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:24:02