如何获取VSCode调试Docker容器内Python代码时的报错信息
查看报错的方法
- 首先执行
docker ps -a,找到VSCode启动的前缀为projectname-dev的调试容器ID(就是你任务终端输出的那串哈希值) - 执行
docker logs 你的容器ID,就能看到完整的Python运行报错信息,包含导入不存在包这类的语法/运行时错误。
静默无输出和断点不触发的问题可以从下面几个方向修改:
- 修改VSCode Docker调试任务的
docker run参数,把默认的-dt(后台分离模式运行)改成-t,容器运行时的输出会直接打印到VSCode终端,不需要手动查日志。 - 你贴出的launch.json内容实际是docker-compose配置,正经的launch.json中需要确保
remoteRoot配置为容器内的代码工作目录/app,和Dockerfile中设置的WORKDIR保持一致,否则本地断点和容器内的代码路径映射不上,就会出现断点不触发的情况。 - 建议把debugpy预装到镜像里,避免启动时临时安装失败:在Dockerfile的依赖安装步骤中加一行
RUN pip install debugpy,同时删掉docker-compose.debug.yml中command里的pip install debugpy -t /tmp &&前缀,直接运行debugpy启动命令即可,省掉临时安装的步骤能规避大部分启动失败的问题。 - debugpy启动命令中的main.py路径换成绝对路径
/app/main.py,避免相对路径读取错误。
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

