运行Python代码遇ModuleNotFoundError: No module named 'baz_functions'求助
问题分析与解决方案
问题根源
报错的核心是模块搜索路径不匹配:
当通过main.py启动程序时,Python的模块搜索路径(sys.path)默认包含myProject/src目录。此时baz_watch.py里写from baz_functions import...,Python会去src根目录找这个模块,而非它所在的foo/bar/baz子目录,因此找不到目标模块。
两种可行解决方案
方案1:使用绝对导入
修改baz_watch.py的导入语句,基于项目完整包结构编写路径:
from foo.bar.baz.baz_functions import function_1, function_2 print('Watching...')
方案2:使用相对导入
因为baz_watch.py和baz_functions.py在同一个baz包下,可使用相对导入语法(开头的.代表当前包):
from .baz_functions import function_1, function_2 print('Watching...')
额外注意事项
- 检查
baz_functions.py或baz目录的__init__.py,确认没有意外导入baz_watch.py——这是触发报错的直接诱因,因为导入baz_functions时会执行这些关联的导入语句。 - 若之前使用过
setup.py,确保以可编辑模式安装项目(pip install -e .),保证本地代码修改能实时生效。
内容的提问来源于stack exchange,提问作者Pablo T
相关产品推荐
相关产品推荐

