我在Ubuntu14.04上用Python3.4编写了一个GUnicorn/Falcon web服务。我想使用VSCode调试器来调试这个服务。当前,我使用命令启动进程。
/usr/local/bin/gunicorn --config /webapps/connects/routerservice_config.py routerservice:api它使用配置文件routerservice.py启动routerservice_config.py。我已经将配置中的工作人员设置为1,以保持简单。
我已经将Python扩展安装到VSCode,所以我有了Python调试工具。因此,如何附加到GUnicorn辅助进程或让VSCode运行启动命令和自动附加。
谢谢,格雷格
发布于 2016-10-04 09:03:04
我是“扩展”的作者。您可以尝试以下方法:https://github.com/DonJayamanne/pythonVSCode/wiki/Debugging:-Remote-Debuging
import ptvsd ptvsd.enable_attach("my_secret", address = ('0.0.0.0', 3000))中FYI:
发布于 2020-03-09 21:57:29
这个launch.json设置在VScode 1.43上适用于我:
{
"name": "Python: Webapp",
"type": "python",
"request": "launch",
"program": "/home/me/.virtualenvs/my-venv/bin/gunicorn",
"gevent": true,
"args": ["main:app", "--bind=127.0.0.1:8080", "--reload", "--worker-class", "eventlet", "-w", "1", "--timeout=7200"],
"postDebugTask": "killdebugger"
}使用此设置,我必须在停止调试器后创建一个任务来终止python进程。这只是因为按下“停止”按钮只会关闭调试器本身,而Python进程将继续运行。如果您面临相同的情况,请按F1创建一个任务,搜索任务并单击“配置任务”。然后将以下命令添加到tasks.json中:
{
"label": "killdebugger",
"type": "shell",
"command": "lsof -t -i tcp:8080 | xargs kill -9"
}如果没有此问题,请从"postDebugTask": "killdebugger"中删除launch.json设置
发布于 2021-11-12 15:01:34
在这里,您会发现我的.VScode/unch.json设置在Windows 10/VScode 1.60.0上为我工作,主要本地化在app/main.py中:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python : app.main",
"cwd": "${workspaceFolder}",
"type": "python",
"request": "launch",
"program": "app/venv/fastapi/Scripts/uvicorn.exe",
"args": ["app.main:app", "--host=127.0.0.1", "--port=8000", "--reload", "--log-level=error" ],
"console": "integratedTerminal",
"postDebugTask": "killdebugger"
}
]
}和correponding . .vscode/tasks.json在调试退出时杀死服务器:
{
"version": "2.0.0",
"tasks": [
{
"label": "killdebugger",
"type": "shell",
"command": "netstat -nao | grep \"8000\"|awk '{ print $5 }'| xargs kill -9"
}
]
}https://stackoverflow.com/questions/39842422
复制相似问题