Flask环境下Python导入本地模块报错:No module named问题排查
解决Flask项目本地模块导入失败的问题
针对你遇到的情况,试试以下几个排查和解决步骤:
确认Flask运行的工作目录
很多时候问题出在运行Flask时没有定位到root_folder。比如在命令行运行时,先cd到root_folder目录,再执行flask run;如果用VS Code的运行按钮,需要在.vscode/launch.json里设置cwd为项目根目录:{ "version": "0.2.0", "configurations": [ { "name": "Python: Flask", "type": "python", "request": "launch", "module": "flask", "env": { "FLASK_APP": "main.py", "FLASK_ENV": "development" }, "args": [ "run", "--no-debugger" ], "cwd": "${workspaceFolder}" } ] }验证PYTHONPATH是否真正生效
手动添加的PYTHONPATH可能没被Flask的运行环境读取到。可以在main.py开头加一段代码打印当前的路径列表:import sys print("当前PYTHONPATH:", sys.path)如果输出里没有
root_folder的路径,就在main.py开头手动添加:import sys from pathlib import Path # 将root_folder添加到路径 sys.path.append(str(Path(__file__).parent))排查__init__.py的问题
虽然你已经添加了__init__.py,但如果文件里有错误代码,会导致模块加载失败,表现为“找不到文件夹”的错误。可以先把modules目录下的__init__.py清空,再尝试导入,如果能成功,就说明原来的__init__.py存在代码问题,逐步排查里面的内容。切换启动方式测试
试试直接用python main.py启动项目(确保main.py里有app.run()代码),如果这样能成功导入模块,说明问题出在flask run的工作目录或环境配置上,回到第一步调整工作目录即可。确认VS Code的Python解释器
检查VS Code左下角的Python解释器是否是你项目使用的环境(比如虚拟环境),如果选错了解释器,之前设置的PYTHONPATH可能不会生效。切换到正确的解释器后,重启终端再运行项目。
内容的提问来源于stack exchange,提问作者TizWarp
相关产品推荐
相关产品推荐

