python - 如何使用 VSCode 调试器调试 Gunicorn 工作进程?

标签 python debugging visual-studio-code gunicorn

我在 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/

相关文章:

python - 使用 opencv Filter2D 函数时如何避免包含零?

debugging - 使用 pgAdmin 调试器是否可以检查函数中使用的临时表的内容?

Rstudio 不会在断点处停止

visual-studio-2010 - 在 Visual Studio 2010 上调试时 IIS 超时

linux - 在 docker compose 中启动没有 "sleep infinity"命令的远程容器

python - 如何使用 VSCode 从文件运行一个 django 测试?

node.js - 在 Docker 中调试服务器上的 nuxtjs .vue 文件

python - PyQt。显示操作系统进程?

python - docker加速python,为什么?

python - 如何在Python中使用mysqldb从mysql db获取数据并将它们插入到wx.ComboBox中