如何使用vscode调试Dify的后端python代码

13 阅读2分钟

创建launch.json文件,只要是调试Dify的api后端的python项目,列举了两个方式moduleprogram的方式,配置如下

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python 调试程序: Flask - module 配置",
            "type": "debugpy",
            "request": "launch",
            "module": "flask", // flask模块
            "cwd": "${workspaceFolder}/api", // 项目目录
            "python": "${workspaceFolder}/api/.venv/bin/python", // 添加这行指定虚拟环境
            "envFile": "${workspaceFolder}/api/.env", // Dify后端依赖的环境变量
            "env": {
                "FLASK_APP": "api/app.py", // flask启动入口文件
                "FLASK_ENV": "development", // flask开发模式
                "FLASK_DEBUG": "1" // 开启flask调试模式
            }, // flask启动的环境变量
            "args": [
                "run", // flask启动命令
                "--host=0.0.0.0", // flask启动参数
                "--port=5001" // flask启动参数
            ],
            "justMyCode": true, // 只调试项目代码,排除三方依赖包
            "stopOnEntry": false, // 启动后是否立即断点
            "showReturnValue": true, // 显示函数返回值
            "jinja": true, // 支持调试jinja模板
            "autoStartBrowser": false, // 自动启动浏览器
        },
        {
            "name": "Python 调试程序: Flask - program 配置",
            "type": "debugpy",
            "request": "launch",
            "program": "${workspaceFolder}/api/app.py",
            "cwd": "${workspaceFolder}/api",
            "python": "${workspaceFolder}/api/.venv/bin/python",
            "envFile": "${workspaceFolder}/api/.env",
            "env": {
                "FLASK_APP": "api/app.py",
                "FLASK_ENV": "development",
                "FLASK_DEBUG": "1"
            },
            "args": [],
            "console": "integratedTerminal",
            "justMyCode": true,
            "stopOnEntry": false,
            "showReturnValue": true,
            "jinja": true,
            "autoStartBrowser": false
        }
    ]
}

Python 调试程序: Flask - module 配置

leehoo@DESKTOP-2705P0B:~/dify.worktree/1.4.1/api$  /usr/bin/env /home/leehoo/.pyenv/versions/3.12.10/bin/python /home/leehoo/.trae-cn-server/extensions/ms-python.debugpy-2025.6.0-linux-x64/bundled/libs/debugpy/adapter/../../debugpy/launcher 38947 -- -m flask run --host=0.0.0.0 --port=5001 
2025-07-03 07:17:24,46 INFO [utils.py:162]  NumExpr defaulting to 4 threads.
 * Serving Flask app 'api/app.py'
 * Debug mode: on
2025-07-03 07:17:41,302 INFO [_internal.py:97]  WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:5001
 * Running on http://172.17.210.39:5001
2025-07-03 07:17:41,303 INFO [_internal.py:97]  Press CTRL+C to quit
2025-07-03 07:17:41,306 INFO [_internal.py:97]   * Restarting with stat
2025-07-03 07:18:08,82 INFO [utils.py:162]  NumExpr defaulting to 4 threads.
2025-07-03 07:18:22,122 WARNING [_internal.py:97]   * Debugger is active!
2025-07-03 07:18:22,125 INFO [_internal.py:97]   * Debugger PIN: 405-112-313

Python 调试程序: Flask - program 配置

leehoo@DESKTOP-2705P0B:~/dify.worktree/1.4.1/api$  /usr/bin/env /bin/python3 /home/leehoo/.vscode-server/extensions/ms-python.debugpy-2025.8.0-linux-x64/bundled/libs/debugpy/adapter/../../debugpy/launcher 48485 -- /home/leehoo/dify.worktree/1.4.1/api/app.py 
2025-07-03 06:47:57,710 INFO [utils.py:162]  NumExpr defaulting to 4 threads.
 * Serving Flask app 'app_factory'
 * Debug mode: on
2025-07-03 06:48:10,630 INFO [_internal.py:97]  WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:5001
 * Running on http://172.17.210.39:5001
2025-07-03 06:48:10,630 INFO [_internal.py:97]  Press CTRL+C to quit
2025-07-03 06:48:10,631 INFO [_internal.py:97]   * Restarting with stat