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

Python相对导入失败:报错attempted relative import with no known parent package

解决相对导入报错:attempted relative import with no known parent package

问题原因

直接运行web/main.py时,Python会把它当作顶层脚本文件,而非server包下的子模块。此时脚本的__package__属性为空,Python无法识别它的父包(即server),自然解析不了..rhino这种相对导入路径。

可行解决方案

  • 方案1:以模块方式运行脚本
    从server所在的上级目录(包含server文件夹的目录)执行命令:

    python -m server.web.main
    

    这种方式会让Python把server当作完整包处理,main.py会被识别为server.web模块,相对导入就能正常找到rhino包。

  • 方案2:改用绝对导入
    先将server所在目录加入Python搜索路径,再用绝对导入。修改main.py:

    import sys
    from pathlib import Path
    
    # 把server的上级目录添加到sys.path
    sys.path.append(str(Path(__file__).parent.parent))
    
    # 绝对导入Rhino类
    from server.rhino.app import Rhino
    

    若想简化导入,可在rhino/__init__.py中添加一行:

    from .app import Rhino
    

    之后导入可直接写:

    from server.rhino import Rhino
    
  • 方案3:规范项目包结构
    在server目录下新建__init__.py,将其转为正式包,之后仍用模块方式运行(参考方案1),或在项目根目录写启动脚本统一调用web/main.py的逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 23:34:52