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

Python子模块__init__.py使用import语句导入类报错问题咨询

问题解决步骤

1. 修正初始化文件命名

你b/c/目录下的包初始化文件命名错误,当前是__init.py,必须修改为标准命名__init__.py(前后各两个下划线),否则Python不会将c识别为合法的包模块,这是触发ModuleNotFoundError的核心原因之一。

2. 修正b/c/__init__.py中的导入逻辑

二选一即可:

  • 方案A:相对导入(包内导入优先推荐)
    直接用相对路径指代当前包内的模块:
    from .x import SomeClient
    from .z import AnotherClient
    
    这里的.代表当前c包的同级路径,不需要写完整前缀。
  • 方案B:全路径绝对导入
    从顶层包开始写全导入路径:
    from b.c.x import SomeClient
    from b.c.z import AnotherClient
    

3. 确认运行方式

执行test.py时,保证a文件夹的路径在Python的模块搜索路径中即可:

  • 如果你在a文件夹的同级目录下,可通过模块方式执行:
    python -m a.test
  • 如果你已经进入a文件夹内,直接执行即可:
    python test.py

原报错原因说明

你之前写from c.x import ...时,Python会从模块搜索根路径下找顶层c包,而你的c包嵌套在b包下,根路径下没有独立的c包,因此报错找不到c模块。删除c.前缀后直接写from x import...,Python依然会从根路径搜索x模块,根路径下没有单独的x.py,因此也会报错。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:09:03