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

Python报ModuleNotFoundError: No module named 'functions'错误咨询

错误原因

Python导入模块时,会按照sys.path列表中的路径顺序搜索目标模块。当你在项目根目录执行./manifold.py时,Python会自动将manifold.py所在的项目根目录加入sys.path作为顶层模块搜索路径。
你在lyrics/__init__.py中写的import functions属于顶层导入语句,Python会直接在顶层搜索路径(也就是项目根目录)下查找functions.py文件,但实际functions.py存放在lyrics子目录下,根目录不存在对应文件,因此抛出ModuleNotFoundError。
另外你在lyrics/__init__.py中写的from lyrics import *存在逻辑问题:__init__.py本身就是lyrics包的初始化文件,在包初始化阶段反向导入自身,非常容易触发循环导入异常,属于冗余的错误写法。

修复方法

按以下两步调整即可解决问题:

  • 修正包内模块的导入语句
    包内模块互相导入时使用标准相对导入(推荐)或者正确的绝对路径导入,不要写跨层级的顶层导入:
    • 相对导入写法(包内导入首选):将import functions改为from . import functions,其中.代表当前包(即lyrics目录)的路径,Python会直接在lyrics目录下查找functions模块,不会遍历顶层搜索路径。
    • 绝对导入写法:也可以写全顶层包路径,改为from lyrics import functions,只要lyrics包在Python的模块搜索路径中即可正常加载。
  • 删除冗余的循环导入代码
    直接删掉lyrics/__init__.py中的from lyrics import *语句,该语句没有实际作用,只会提升循环导入报错的概率。

修复完成后,lyrics/__init__.py的参考内容如下:

from . import functions

# 如果需要把functions内的接口直接暴露为lyrics包的对外接口,可以按需添加
# from .functions import *

调整完成后再在项目根目录执行./manifold.py即可正常运行,不需要额外修改目录结构或者追加搜索路径配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:57:51