我刚刚开始将VS Code与Python插件结合使用。我已经设置了venv,在该venv中启动了代码,安装了所有必要的模块,并更新了launch.json以启动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",
"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安装。
最佳答案
我也看到了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中启动调试更快。关于python - VS Code + Flask:ValueError:源代码字符串不能包含空字节,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47938192/