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

Python导入子模块报错ModuleNotFoundError的解决方法求助

Python导入子模块报错ModuleNotFoundError的解决方法求助

大家好,我最近写Python代码时碰到了个模块导入的问题,卡了好半天都没搞定,想请各位大佬帮忙看看!

我在main.py里写了这么一行导入代码:

from t1.test import test

结果运行直接弹出错误:

ModuleNotFoundError: No module named 't1'

我已经试过在t1文件夹里创建__init__.py文件了,甚至还在t1的__init__.py里主动导入了test模块,但还是报同样的错,完全摸不着头脑了😩

下面是几个可能能解决问题的方法,你可以挨个试试:

  • 先核对文件夹结构:首先得确保文件摆放位置正确!正确的结构应该是这样的:

    你的项目文件夹/
    ├── main.py  # 你要运行的主文件
    └── t1/      # 子包文件夹
        ├── __init__.py  # 必须存在,空的也行
        └── test.py      # 你要导入的模块
    

    要是main.py和t1不在同一个文件夹下,Python肯定找不到t1,得先把位置调整对。

  • 手动添加项目路径到Python搜索列表:有时候Python的默认搜索路径里没有你的项目根目录,你可以在main.py最开头加这段代码,把当前脚本所在目录加入搜索路径:

    import sys
    import os
    # 把main.py所在的目录添加到Python的模块搜索路径中
    sys.path.append(os.path.dirname(os.path.abspath(__file__)))
    

    加完之后再尝试导入,应该就能找到t1模块了。

  • 尝试相对导入(注意运行方式):如果main.py和t1是同级的,你也可以用相对导入的写法:

    from .t1.test import test
    

    但要注意!用相对导入的话,不能直接双击运行main.py或者用python main.py命令启动,得把整个项目当成包来运行,比如在项目根目录下执行:

    python -m main
    

    这样Python就能识别到相对导入的父包了。

  • 检查__init__.py的内容:如果你之前在__init__.py里写了一些导入代码,有可能反而起反作用,你可以先把__init__.py改成空文件,只要文件存在就行——Python只要看到这个文件,就会把t1识别成可导入的包。

备注:内容来源于stack exchange,提问作者Abdul Mannan Ghauri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 14:58:06