Python VSCode 中的 Python Azure Function (HTTPTrigger) 调试未正常启动 Func Host Start

Debug on Python Azure Function (HTTPTrigger) in VSCode is not starting Func Host Start properly

问题:

Python3.6、windows环境变量等所有依赖都已设置,必要的requirement.txt已手动安装在我的.env(我的虚拟环境)中,API客户端已安装,

错误:我得到的是如下

我的 launch.json 看起来像这样,不知道如何解决这个问题 - 我怀疑 vscode 配置有问题

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Attach to Python Functions",
      "type": "python",
      "request": "attach",
      "port": 9091,
      "host": "localhost",
      "preLaunchTask": "runFunctionsHost"
    }
  ]
}

感谢任何指导或帮助。

更新

自 Azure Functions 扩展 v0.14.0 以来已修复此问题。

Removed terminal specific separators from debug config


原答案

单击 .vscode 目录下的 settings.json,然后单击 USER SETTINGS

检查设置"terminal.integrated.shell.windows",它的值应该是powershell.exe。调试任务根据 OS 使用不同的命令,Windows 的命令仅适用于 PowerShell。

您可以将 .vscode/tasks.json 文件更新为这样的文件以使用 bash

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "runFunctionsHost",
      "type": "shell",
      "osx": {
        "command": ". ${config:azureFunctions.pythonVenv}\bin\activate && func extensions install && pip install -r requirements.txt && func host start"
      },
      "windows": {
        "command": ". ${config:azureFunctions.pythonVenv}/Scripts/activate ; func extensions install ; pip install -r requirements.txt ; func host start"
      },
      "linux": {
        "command": ". ${config:azureFunctions.pythonVenv}\bin\activate && func extensions install && pip install -r requirements.txt && func host start"
      },
      "isBackground": true,
      "options": {
        "env": {
          "languageWorkers__python__arguments": "-m ptvsd --host 127.0.0.1 --port 9091"
        }
      },
      "problemMatcher": "$func-watch"
    },
    {
      "label": "funcPack",
      "type": "shell",
      "osx": {
        "command": ". ${config:azureFunctions.pythonVenv}\bin\activate && func pack"
      },
      "windows": {
        "command": ". ${config:azureFunctions.pythonVenv}/Scripts/activate ; func pack"
      },
      "linux": {
        "command": ". ${config:azureFunctions.pythonVenv}\bin\activate && func pack"
      },
      "isBackground": true
    }
  ]
}

请注意 commandwindows

的变化

为了方便以后遇到此问题的人,请在编辑 task.json 时使用下面的屏幕截图,如 @PramodValavala-MSFT 所述

task.json

的屏幕截图