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

Spyder IDE中子模块基础导入失败问题排查

解决ModuleNotFoundError: No module named 'sub'的常见原因
  • 当前工作目录不匹配
    Spyder默认工作目录可能未指向项目根目录(即包含main.py和sub文件夹的目录)。Python只会在当前工作目录及sys.path路径中查找模块,若根目录不在其中就会报错。
    解决方式:

    1. 在Spyder中通过文件 > 设置 > 运行 > 工作目录,将路径修改为项目根目录;
    2. 在main.py开头添加代码强制切换到脚本所在目录:
      import os
      os.chdir(os.path.dirname(os.path.abspath(__file__)))
      
  • 项目根目录未加入Python搜索路径
    即使工作目录正确,sys.path中可能没有包含项目根目录。可以先在main.py开头添加代码查看当前搜索路径:

    import sys
    print(sys.path)
    

    若项目根目录不在输出列表中,手动添加:

    import sys
    import os
    project_root = os.path.dirname(os.path.abspath(__file__))
    if project_root not in sys.path:
        sys.path.append(project_root)
    
  • __init__.py文件异常
    虽然你已添加__init__.py,但如果文件存在语法错误,会影响模块识别。检查sub文件夹下的__init__.py,确保文件无语法问题(空文件是允许的)。

  • Spyder运行配置错误
    若通过右键或快捷方式运行main.py,Spyder可能未正确使用项目根目录作为工作目录。可以通过运行 > 配置文件,手动设置工作目录为项目根目录后重新运行。

  • 缓存干扰
    Python字节码缓存(__pycache__文件夹)或Anaconda环境缓存可能导致异常。删除项目中的__pycache__文件夹,重启Spyder和Anaconda环境后再尝试运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:00:03