在 Windows 上执行 flask run 报错 Error while finding module specification for XXX ModuleNotFoundError 的解决方法

如果你更新了 Werkzeug 到最新的 0.15.5 版本,在 Windows 下执行 flask run 会出现类似下面的报错:

d:\repos\flask-examples\.venv\scripts\python.exe: Error while finding module specification for 
'D:\\repos\\flask-examples\\.venv\\Scripts\\flask' (ModuleNotFoundError: No module named 'D:\\repos\\flask-examples\\')

触发这个错误同时满足的条件一般还有:

  • 开启了调试模式,即 FLASK_ENV=development
  • 使用 Pipenv 或使用 virtualenv 时虚拟环境目录包含点

解决方法:

  • 降级 Werkzeug 到 0.15.4 版本
  • 临时使用 python -m flask run 命令启动程序

具体信息见 Reloader can't find script when path contains dot on Windows · Issue #1619 · pallets/werkzeug · GitHub

2 个赞

谢谢Grey。
我还以为是我安装了python-dotenv的问题,因为一卸载该模块就可以正常运行。
请问如果没有安装python-dotenv,是否就不会读取.flaskenv和.env的文件?

对。