我一直在尝试使调试器在VS Code中工作,以便可以调试Flask App。我在launch.json
中尝试了太多选项,以至于我感觉没有剩余了。
以下示例不起作用:https://github.com/DonJayamanne/pythonVSCode/wiki/Debugging:-Flask
Debug Flask(Python) web application in Visual studio code
以下是我的launch.json
和setting.json
。当我尝试多种变体时,启动文件中有两种配置。
launch.json
"version": "0.2.0",
"configurations": [
{
"name": "Flask",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
//"module": "flask.cli",
"program": "${workspaceRoot}/startup.py",
"cwd": "${workspaceRoot}",
"env": {
"FLASK_APP": "${workspaceRoot}/apt-flask.py",
},
"args": [
"run",
"--no-debugger",
"--no-reload"
],
"envFile": "${workspaceRoot}/.env",
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit",
"RedirectOutput"
]
},
{
"name": "Python: APT FLask",
"type": "python",
"request": "launch",
"stopOnEntry": true,
"pythonPath": "${workspaceFolder}/venv/Scripts/python.exe",
//"program": "${workspaceFolder}/venv/Scripts/flask.exe",
"module": "flask.cli",
"cwd": "${workspaceFolder}",
"env": {
"FLASK_APP": "${workspaceFolder}/apt-flask.py",
"DEBUG": 1,
"LC_ALL": "en_US.utf-8",
"LANG": "en_US.utf-8"
},
"args": [
"run",
"--no-debugger",
"--no-reload"
],
"envFile": "${workspaceFolder}/.env",
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit",
"RedirectOutput"
]
}
]
settings.json
{
"python.pythonPath": "${workspaceRoot}/venv/Scripts/python.exe"
}
就错误而言,控制台没有任何错误,只有编辑器中的错误告诉我“调试适配器进程已意外终止”。
我不确定还有什么尝试。我目前使用Pycharm,但一直在寻找更轻巧的编辑器,并且由于我将VS Code用于其他用途,因此有必要进行更改,因此最终使它正常工作将是一件很不错的事情。
任何帮助都是很棒的。
参考方案
截至2019年11月,我发现以下有用:
新方法(基本方法)–下面的“旧方法”更好
https://code.visualstudio.com/docs/python/tutorial-flask
假设一个简单的app.py如:
import flask
app = flask.Flask(__name__)
@app.route('/')
def index():
return "Hello world!"
然后通过从“调试资源管理器”下拉列表中添加Python Flask调试配置,将.vscode / launch.json添加到您的项目中。
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Flask",
"type": "python",
"request": "launch",
"module": "flask",
"env": {
"FLASK_APP": "app.py",
"FLASK_ENV": "development",
"FLASK_DEBUG": "1"
},
"args": [
"run",
"--no-debugger",
"--no-reload"
],
"jinja": true
}
]
}
Flask应用程序通过VS Code调试器[F5]有效地以“新方式”运行。
python -m flask run
老路(更好)
Miguel建议在VS Code调试器中使用带有其他标志的旧方法运行应用程序更好。
https://youtu.be/UXqiVe6h3lA?t=1194
根据https://blog.miguelgrinberg.com/post/setting-up-a-flask-application-in-visual-studio-code。
将以下内容添加到app.py中(从上方):
if __name__ == '__main__':
app.run(use_debugger=False, use_reloader=False, passthrough_errors=True)
修改.vscode / launch.json如下所示:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Flask",
"type": "python",
"request": "launch",
"module": "app",
"env": {
"FLASK_APP": "app.py",
"FLASK_ENV": "development",
"FLASK_DEBUG": "1"
},
"args": [
// "run",
// "--no-debugger",
// "--no-reload"
],
"jinja": true
}
]
}
因此,Flask应用程序实际上是通过VS Code调试器[F5]运行的“旧方法”。
python app.py
Python uuid4,如何限制唯一字符的长度 - python在Python中,我正在使用uuid4()方法创建唯一的字符集。但是我找不到将其限制为10或8个字符的方法。有什么办法吗?uuid4()ffc69c1b-9d87-4c19-8dac-c09ca857e3fc谢谢。 参考方案 尝试:x = uuid4() str(x)[:8] 输出:"ffc69c1b" Is there a way to…
Python:无法识别Pip命令 - python这是我拍摄的屏幕截图。当我尝试在命令提示符下使用pip时,出现以下错误消息:pip无法识别为内部或外部命令,可操作程序或批处理文件。我已经检查了这个线程:How do I install pip on Windows?我所能找到的就是我必须将"C:\PythonX\Scripts"添加到我的类路径中,其中X代表python版本。如您在我的…
Python:如何将有效的uuid从String转换为UUID? - python我收到的数据是 { "name": "Unknown", "parent": "Uncategorized", "uuid": "06335e84-2872-4914-8c5d-3ed07d2a2f16" }, 我需要将uuid从Strin…
Python 3会流行吗? - python我已经学习了一些Python 2和Python 3,似乎Python 2总体上比Python 3更好。这就是我的问题所在。是否有充分的理由真正切换到python 3? 参考方案 总体上,甚至在大多数细节上,Python3都比Python2更好。关于第三方库, Python 3落后于的唯一区域是。使Python变得如此出色的原因不仅在于它作为一种语言的内在特性…
python 。向字典中的键添加多个项目 - python我正在尝试根据一组唯一值构建一个字典,以用作键和提供项目的元组压缩列表。set = ("a","b","c") lst 1 =("a","a","b","b","c","d",…