Vscode怎样调试Python程序【教程】
发布时间 - 2026-01-28 00:00:00 点击率:次必须装Python扩展、选对解释器、配好launch.json;最小配置只需module、args、console三字段;断点失效多因文件未执行、__name__判断失败、热重载干扰或路径含中文。
VS Code 调试 Python 前必须确认的三件事
VS Code 本身不自带 Python 调试能力,必须装对扩展、选对解释器、配好 launch.json,缺一不可。很多人卡在“点调试没反应”,其实根本没进调试流程。
- 装好 Python 扩展(Microsoft 官方),不是 Pylance 或其他辅助插件 —— 后者不提供调试器
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(Mac)打开命令面板,运行Python: Select Interpreter,选一个真实存在的 Python 解释器路径(比如/usr/bin/python3或C:\Python39\python.exe),不能是 conda 环境但没激活、或虚拟环境路径写错 - 项目根目录下要有
.vscode/launch.json,且其中configurations至少有一项,type必须是python,request是launch或attach
最简可用的 launch.json 配置怎么写
不用抄网上几十行的模板。一个能跑起来的最小配置,只关注三个字段:module、args、console。其余如 env、justMyCode 按需加。
- 调试脚本文件(如
main.py):用module字段更稳,避免路径问题{ "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "module": "main", "console": "integratedTerminal" } ] } - 如果脚本依赖命令行参数,在
args里写数组:"a
rgs": ["--verbose", "input.txt"]
-
console推荐integratedTerminal;设成externalTerminal在 Windows 上常因权限或路径失败
断点不生效?先看这四个常见硬伤
VS Code 显示红点(断点已设),但运行后直接跳过,大概率不是 VS Code 问题,而是 Python 运行时根本没加载到那行。
- 当前文件没被真正执行:比如你在
utils.py打断点,但主程序是python app.py,且app.py没 importutils—— 断点在未加载模块里无效 - 用了
if __name__ == "__main__":但没走进去:检查是否误点了「调试 Python 文件」而不是「调试当前启动配置」,前者会忽略launch.json的module设置 - 代码被优化或重载:某些框架(如 Flask 开发模式、Jupyter 插件)会动态 reload,导致断点绑定失效;关掉热重载再试
- 路径含中文或空格:Windows 下尤其敏感;把项目移到
C:\dev\myproj这类纯英文无空格路径再试
调试多文件/包结构时 module 和 program 怎么选
区别不在“能不能用”,而在“Python 怎么导入和执行”。用错会导致 ModuleNotFoundError 或断点全失效。
-
program:指定一个 .py 文件路径,等价于命令行python xxx.py;适合扁平脚本,但跨目录 import 容易失败(因为sys.path[0]是文件所在目录,不是项目根) -
module:指定模块名(不含.py),如"myproject.cli",等价于python -m myproject.cli;要求项目根在PYTHONPATH或已安装为可导入包;断点在包内任意文件都有效 - 推荐统一用
module:在launch.json里写"module": "myproject.main",并在项目根下确保有myproject/__init__.py;这样路径稳定,也符合生产部署习惯
debugpy,它会在 Python 进程里注入一个 socket server。所以任何阻塞 stdin、接管信号(如 os.kill())、或提前 exit 的逻辑,都可能让调试会话静默退出——这不是配置问题,是程序行为和调试机制的天然冲突。
# linux
# python
# vscode
# js
# json
# windows
# app
# mac
# ai
# win
# microsoft
# flask
# conda
# if
# select
# 命令行参数
# console
# input
# jupyter
# 命令行
# 再试
# 但没
# 加载
# 调试器
# 主程序
# 要有
# 你在
# 很多人
# 只需
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
如何快速上传自定义模板至建站之星?
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
如何做网站制作流程,*游戏网站怎么搭建?
C++时间戳转换成日期时间的步骤和示例代码
Laravel如何实现本地化和多语言支持?(i18n教程)
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
深圳网站制作平台,深圳市做网站好的公司有哪些?
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
Linux系统运维自动化项目教程_Ansible批量管理实战
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
高防服务器租用首荐平台,企业级优惠套餐快速部署
,怎么在广州志愿者网站注册?
简单实现Android验证码
Android自定义listview布局实现上拉加载下拉刷新功能
IOS倒计时设置UIButton标题title的抖动问题
如何在阿里云虚拟主机上快速搭建个人网站?
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
深圳网站制作培训,深圳哪些招聘网站比较好?
Java解压缩zip - 解压缩多个文件或文件夹实例
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
实例解析angularjs的filter过滤器
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
Laravel如何处理CORS跨域请求?(配置示例)
利用python获取某年中每个月的第一天和最后一天
网站建设要注意的标准 促进网站用户好感度!
iOS中将个别页面强制横屏其他页面竖屏
JavaScript如何实现类型判断_typeof和instanceof有什么区别
javascript基本数据类型及类型检测常用方法小结
企业网站制作这些问题要关注
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
如何在香港服务器上快速搭建免备案网站?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
bootstrap日历插件datetimepicker使用方法
晋江文学城电脑版官网 晋江文学城网页版直接进入
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
Laravel如何保护应用免受CSRF攻击?(原理和示例)
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
教你用AI将一段旋律扩展成一首完整的曲子
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?


