含__init__.py的App模块出现ModuleNotFoundError,运行测试报错求助
ModuleNotFoundError: No module named 'app' 问题排查
下面是可能的原因及对应的解决办法:
目录大小写不匹配
你的项目里是App文件夹,但测试代码里写的是from app import db(小写app)。Python在Linux、macOS这类类Unix系统中对文件名大小写敏感,而Windows系统不敏感。如果你的朋友是在Windows上开发,你在类Unix系统运行代码,就会出现这个模块找不到的问题。
解决方式:要么把App文件夹重命名为app,要么把测试代码里的导入语句改成from App import db。Python工作目录未指向Project根目录
运行测试时,Python的工作目录如果不是Project根目录,就无法识别App/app这个包。哪怕你把测试文件移到Project目录下,要是运行时的工作目录不对,问题依然存在。
解决方式:- 打开终端,先切换到
Project目录再执行测试:
如果你已经把测试移到cd /你的Project目录路径 python Tests/unit_test.pyProject目录,就执行:cd /你的Project目录路径 python unit_test.py - 或者在测试代码开头手动将
Project目录添加到Python的搜索路径中:import sys from pathlib import Path # 若测试文件在Tests文件夹下,获取Project根目录路径 project_root = Path(__file__).parent.parent # 若测试文件已移到Project目录,改为 project_root = Path(__file__).parent sys.path.append(str(project_root)) from app import db
- 打开终端,先切换到
环境配置差异
如果你朋友的Python环境中已经把Project目录添加到了系统环境变量PYTHONPATH里,而你的环境没做这个配置,也会导致Python找不到模块。可以检查下自己的PYTHONPATH是否包含Project目录。
内容的提问来源于stack exchange,提问作者jinray
相关产品推荐
相关产品推荐

