0

0

VSCode如何调试Python程序 VSCode调试Python代码的详细步骤

看不見的法師

看不見的法師

发布时间:2025-08-12 10:29:01

|

1217人浏览过

|

来源于php中文网

原创

安装python扩展是调试的前提,2. 创建或打开项目后配置launch.json文件,3. 通过设置断点并启动调试器开始调试,4. 利用f5、f10、f11等快捷键进行单步执行和流程控制,5. 在调试视图中检查变量和执行表达式,6. 使用条件断点、日志断点等高级技巧提升效率,7. 调试第三方库需设置"justmycode": false并确保有源码,8. 调试flask或django应用时需配置module、env和args以正确启动服务,9. 远程调试需在服务器安装debugpy并配置远程连接信息,10. 遇到端口占用错误时应查找并终止占用进程或更改端口,所有步骤完成后即可实现高效python调试。

VSCode如何调试Python程序 VSCode调试Python代码的详细步骤

VSCode调试Python程序,简单来说,就是配置好launch.json,然后打断点,愉快地debug。但是,细节往往藏在魔鬼里。

配置launch.json,设置断点,启动调试器,检查变量,单步执行,这些是基本操作。但要真正高效地调试Python代码,还需要了解一些更深入的技巧和方法。

VSCode调试Python代码的详细步骤

立即学习Python免费学习笔记(深入)”;

  1. 安装Python扩展:确保VSCode中安装了Python扩展。这通常是第一步,因为这个扩展提供了调试、代码补全等核心功能。没有它,一切都无从谈起。

  2. 创建或打开Python项目:在VSCode中打开你的Python项目文件夹。如果还没有项目,可以创建一个新的Python文件。

  3. 配置调试环境(launch.json):这是关键的一步。

    • 点击VSCode侧边栏的“运行和调试”图标(或者按
      Ctrl+Shift+D
      )。
    • 点击“创建launch.json文件”。
    • 选择“Python File”或者“Python Module”等合适的配置。

    一个典型的

    launch.json
    文件可能看起来像这样:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Python: Current File",
                "type": "python",
                "request": "launch",
                "program": "${file}",
                "console": "integratedTerminal",
                "justMyCode": false
            }
        ]
    }
    • "program": "${file}"
      表示调试当前打开的文件。
    • "console": "integratedTerminal"
      表示在集成终端中运行程序。
    • "justMyCode": false
      很重要,它允许你调试标准库和第三方库的代码。如果设为
      true
      ,调试器会跳过这些代码。
  4. 设置断点:在你想暂停执行的代码行左侧点击,或者使用

    F9
    快捷键。断点会在编辑器中显示为一个红点。

  5. 启动调试:点击“运行和调试”视图中的绿色箭头,或者按

    F5
    键。VSCode会启动调试器,并在第一个断点处暂停。

  6. 调试操作:

    • 继续 (F5): 继续执行到下一个断点,如果没有断点,则执行到程序结束。
    • 单步跳过 (F10): 执行当前行,然后跳到下一行。如果当前行是一个函数调用,则直接执行完函数,不进入函数内部。
    • 单步进入 (F11): 如果当前行是一个函数调用,则进入函数内部。
    • 单步跳出 (Shift+F11): 从当前函数中跳出,返回到调用函数的地方。
    • 重新启动 (Ctrl+Shift+F5): 重新启动调试会话。
    • 停止 (Shift+F5): 停止调试会话。
  7. 检查变量:在“运行和调试”视图中,你可以查看当前作用域内的变量值。也可以使用“调试控制台”来执行Python代码,查看表达式的值。

    RecoveryFox AI
    RecoveryFox AI

    AI驱动的数据恢复、文件恢复工具

    下载
  8. 高级调试技巧:

    • 条件断点: 在断点上右键,选择“编辑断点”,可以设置断点触发的条件。例如,只有当变量
      i
      的值大于10时,断点才会暂停。
    • 日志断点: 类似于条件断点,但不会暂停程序,而是在控制台中输出一条日志消息。这对于调试复杂的逻辑非常有用,可以避免频繁地暂停程序。
    • 多线程调试: VSCode支持多线程调试。在调试多线程程序时,可以查看每个线程的状态,并在不同的线程之间切换。

如何调试import的第三方库?

确保

launch.json
"justMyCode": false
,这样调试器就不会跳过第三方库的代码。另外,你可能需要在第三方库的代码中设置断点,以便调试器能够暂停。如果第三方库的代码没有源代码(例如,只有编译后的二进制文件),则可能无法调试。不过,大多数流行的Python库都有源代码,所以通常不是问题。

如何调试Flask或Django等Web应用?

对于Web应用,

launch.json
的配置会略有不同。你需要告诉调试器如何启动你的Web应用。例如,对于Flask应用,可以这样配置:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Flask",
            "type": "python",
            "request": "launch",
            "module": "flask",
            "env": {
                "FLASK_APP": "your_app.py",
                "FLASK_DEBUG": "1"
            },
            "args": [
                "run",
                "--no-debugger",
                "--no-reload"
            ],
            "justMyCode": false
        }
    ]
}
  • "module": "flask"
    表示使用Flask模块来启动应用。
  • "env": { "FLASK_APP": "your_app.py", "FLASK_DEBUG": "1" }
    设置环境变量,指定Flask应用的文件和启用调试模式。
  • "args": [ "run", "--no-debugger", "--no-reload" ]
    传递给Flask的参数,禁用Flask自带的调试器和自动重载,以便VSCode的调试器可以正常工作。

调试Django应用的配置类似,只是需要指定Django的

manage.py
文件。

如何调试远程服务器上的Python程序?

VSCode也支持远程调试。这需要一些额外的配置,例如,在远程服务器上安装

debugpy
库,并在
launch.json
中指定远程服务器的地址和端口。具体的步骤可以参考VSCode的官方文档。远程调试对于调试部署在服务器上的应用非常有用。

调试时遇到“OSError: [Errno 98] Address already in use”怎么办?

这个错误通常表示端口被占用。这可能是因为之前启动的调试会话没有正常关闭,或者有其他程序占用了该端口。解决办法是:

  1. 找到占用该端口的进程,并将其杀死。可以使用
    lsof -i :<端口号>
    (Linux/macOS)或者
    netstat -ano | findstr <端口号>
    (Windows)命令来查找占用端口的进程。
  2. 更改
    launch.json
    中指定的端口号。

确保每次调试结束后都正常停止调试会话,可以避免端口被占用的问题。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python Flask框架
Python Flask框架

本专题专注于 Python 轻量级 Web 框架 Flask 的学习与实战,内容涵盖路由与视图、模板渲染、表单处理、数据库集成、用户认证以及RESTful API 开发。通过博客系统、任务管理工具与微服务接口等项目实战,帮助学员掌握 Flask 在快速构建小型到中型 Web 应用中的核心技能。

86

2025.08.25

Python Flask Web框架与API开发
Python Flask Web框架与API开发

本专题系统介绍 Python Flask Web框架的基础与进阶应用,包括Flask路由、请求与响应、模板渲染、表单处理、安全性加固、数据库集成(SQLAlchemy)、以及使用Flask构建 RESTful API 服务。通过多个实战项目,帮助学习者掌握使用 Flask 开发高效、可扩展的 Web 应用与 API。

72

2025.12.15

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

419

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

535

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

311

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

77

2025.09.10

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

503

2023.08.10

Python 多线程与异步编程实战
Python 多线程与异步编程实战

本专题系统讲解 Python 多线程与异步编程的核心概念与实战技巧,包括 threading 模块基础、线程同步机制、GIL 原理、asyncio 异步任务管理、协程与事件循环、任务调度与异常处理。通过实战示例,帮助学习者掌握 如何构建高性能、多任务并发的 Python 应用。

166

2025.12.24

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

158

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
go语言零基础开发内容管理系统
go语言零基础开发内容管理系统

共34课时 | 2.6万人学习

第二十三期_前端开发
第二十三期_前端开发

共98课时 | 7.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号