我在 Ubuntu 14.04 上有一个用 Python 3.4 编写的 GUnicorn/Falcon Web 服务。我想使用 VSCode 调试器来调试此服务。我目前使用命令开始该过程
/usr/local/bin/gunicorn --config /webapps/connects/routerservice_config.py routerservice:api
它使用配置文件 routerservice_config.py 启动 routerservice.py。为了简单起见,我在配置中将工作人员设置为 1。
我已经安装了 VSCode 的 Python 扩展,所以我有 Python 调试工具。那么我如何附加到 GUnicorn 工作进程或让 VSCode 运行启动命令并自动附加。
谢谢, 格雷格
最佳答案
此 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"
}
如果您没有遇到此问题,请从 launch.json 中删除 "postDebugTask": "killdebugger"
设置
关于python - 如何使用 VSCode 调试器调试 Gunicorn 工作进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39842422/