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
}
]
}
请注意 command 中 windows
的变化
为了方便以后遇到此问题的人,请在编辑 task.json 时使用下面的屏幕截图,如 @PramodValavala-MSFT 所述
task.json
的屏幕截图
问题:
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
}
]
}
请注意 command 中 windows
的变化为了方便以后遇到此问题的人,请在编辑 task.json 时使用下面的屏幕截图,如 @PramodValavala-MSFT 所述