我刚刚开始在Python插件中使用VS Code。我已经设置了一个venv,在该venv中启动了代码,安装了所有必需的模块并更新了我的launch.json以启动烧瓶应用程序,如下所示:
{
"name": "Python: Flask (0.11.x or later)",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
"program": "${workspaceFolder}/env/Scripts/flask.exe",
"cwd": "${workspaceFolder}",
"env": {
"FLASK_APP": "${workspaceFolder}/main.py"
},
"args": [
"run",
"--no-debugger",
"--no-reload"
],
"envFile": "${workspaceFolder}/.env",
"debugOptions": [
"RedirectOutput"
]
},
但是当我在VS Code中为Flask启动调试器时,我的调试控制台中会出现以下内容:
ValueError:源代码字符串不能包含空字节
但是,如果我只是从命令行启动应用程序:
set FLASK_APP=main.py
python -m flask
它运作得很好。我确定这是我做过的蠢事,但我无法弄清楚那是什么。
另请注意,pythonPath指向我的venv python安装。
答案 0 :(得分:1)
我也看到了ValueError
,并且找不到合适的解决方案,但使用"module": "flask"
进行了解决方法:
{
"name": "Python: Flask (0.11.x or later)",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
//"program": "${workspaceFolder}/env/Scripts/flask.exe",
"module": "flask",
"cwd": "${workspaceFolder}",
"env": {
"FLASK_APP": "${workspaceFolder}/main.py"
},
"args": [
"run",
"--no-debugger",
"--no-reload"
],
"envFile": "${workspaceFolder}/.env",
"debugOptions": [
"RedirectOutput"
]
}
但是,每次开始调试时都需要一些时间来启动Flask应用程序,不确定这是否是由于Flask是通过Python启动的。从命令行调用flask.exe
和python.exe -m flask
似乎速度相当快 - 比在VS Code中开始调试要快得多。