python - Flask 无法在调试模式下重新启动,并且 Visual Studio 2019 中不支持颜色输出
问题描述
我使用 Visual Studio 2017 作为我的小型 Flask 项目的 IDE,但是当我尝试升级到 VS2019 时,它不再启动,Python 控制台卡在
* Serving Flask app "flask_vs2019" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Restarting with stat
然后我通过 VS2019 向导创建了一个新的 Flask 项目,添加了 debug=True 并且它在重新启动时卡住了。启动代码如下所示:
import os
from flask_vs2019 import app
if __name__ == '__main__':
HOST = os.environ.get('SERVER_HOST', 'localhost')
try:
PORT = int(os.environ.get('SERVER_PORT', '5555'))
except ValueError:
PORT = 5555
app.run(HOST, PORT, debug=True)
我尝试了多种解决方法,我很确定这是 VS 2019 的问题。Flask 在以下情况下工作:
- 使用具有完全相同代码的 VS 2017
- 使用 cmd 控制台并通过
flask run
or启动python -m flask run
use_reloader=False
使用or关闭重新加载器DEBUG=False
,这是不可接受的,因为每当您更改代码时都必须重新启动 Flask。
Flask 在以下情况下不起作用:
- 对任何版本的 Flask 和 werkzeug 使用 VS 2019 (16.7)
- 设置
FLASK_ENV=development
和/或DEBUG=True
作为环境变量 - 在虚拟环境中安装看门狗包
事实上,我发现早在 2020 年 3 月就在Visual Studio 开发者社区上报告了完全相同的问题,但是“这个问题没有太多的产品团队活动和非常少量的新投票或评论。基于此,它的严重性和受影响的地区,根据我的经验,这个问题不太可能得到解决”。好吧,我想我现在必须坚持使用 VS 2017。
即使我关闭了调试模式,Python 控制台仍然无法正常工作,因为颜色输出被破坏了。
127.0.0.1 - - [08/Aug/2020 13:59:02] "[37mGET / HTTP/1.1[0m" 200 -
127.0.0.1 - - [08/Aug/2020 13:59:02] "[37mGET /static/content/bootstrap.min.css HTTP/1.1[0m" 200 -
127.0.0.1 - - [08/Aug/2020 13:59:02] "[37mGET /static/content/site.css HTTP/1.1[0m" 200 -
127.0.0.1 - - [08/Aug/2020 13:59:03] "[33mGET /favicon.ico HTTP/1.1[0m" 404 -
使用 colorama 设置colorama.init(autoreset=True)
将无法解决。在 VS2017 中,不需要任何解决方法,颜色输出就可以正常工作。
解决方案
推荐阅读
- python - 如何从泡菜中解析出信息?
- arrays - 如何更改 Swift 数组中 NSObject 元素的属性,然后将其附加到同一个数组
- python - 如何使用 PyMongo 创建令牌的哈希索引?
- javascript - 如何在 webpack 项目中制作设置文件?
- java - Eclipse - 如何禁用/摆脱虚假的“未找到片段”错误
- laravel - 从枢轴属性查询返回集合
- javascript - 从上到下显示文本元素
- flask - 使用工厂模式访问 Flask 中的 @App 装饰器
- c - C语言从缓冲区读取数据
- c# - 如何使用 HttpRequestHeader 将 If-Match 标头作为字符串获取