我刚刚开始将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.exepython.exe -m flask似乎速度均匀-明显比在VS Code中启动调试更快。

关于python - VS Code + Flask:ValueError:源代码字符串不能包含空字节,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47938192/

10-11 10:45