Windows下Python导入模块遇ModuleNotFoundError,macOS运行正常
Windows下Python脚本出现ModuleNotFoundError的原因及解决办法
核心原因
1. 模块搜索路径差异
Python的模块搜索依赖sys.path列表,这个列表会随运行脚本的当前工作目录变化:
- macOS上你大概率是在
src的上级目录执行脚本(比如python src/greeter.py),此时上级目录被加入sys.path,Python能识别到src作为顶层包。 - Windows上如果直接进入
src目录运行python greeter.py,sys.path里只有src目录本身,找不到名为src的模块,因此报错。
2. 文件名/目录名大小写问题(次要)
macOS文件系统默认大小写敏感,Windows则默认不敏感。如果代码中导入的路径(如helper)和实际文件/目录名大小写不匹配,macOS上严格匹配能正常运行,但Windows下可能因系统的大小写兼容导致Python导入逻辑混乱,触发异常。
解决办法
- 统一运行目录:在
src的上级目录执行脚本,命令统一为:python src/greeter.py - 改用相对导入:如果需要在
src目录内运行脚本,修改导入语句为相对路径:
此时需用模块方式运行(上级目录执行):from .helper import worldpython -m src.greeter - 检查大小写匹配:确保代码中的导入路径和实际文件、目录的大小写完全一致。
内容的提问来源于stack exchange,提问作者flymg
相关产品推荐
相关产品推荐

