linux系统下,在vscode的命令行中调试python文件

首先参考vscode官网文档Command line debugging

步骤 1(只需一次):安装debugpy

步骤 2:在命令行中运行

python 复制代码
python -m debugpy --listen 5678 --wait-for-client -m dir1.dir2.your_script

以上命令使用了端口'5678',也可以改成其他端口;命令末尾的 dir1.dir2.your_script 是待调试的模块(即 .py文件)所在的路径,因为这里使用了 "-m"选项表示将python模块作为脚本来运行,所以模块的路径中用 "." 代替了 "/" 并且模块不加后缀 ".py"

步骤 3(只需一次):执行了步骤二后千万别终止终端的运行,现在点击工具栏"Run and Debug",点击"create a launch.json file",将弹出的"launch.json"配置文件中的主要内容替换成

python 复制代码
{
  "name": "Python: Attach",
  "type": "python",
  "request": "attach",
  "connect": {
    "host": "localhost",
    "port": 5678
  }
}

注意配置文件里的 port 的键值要和步骤2里的port保持一致,本例中都是 '5678'

步骤 4:此时的终端仍然处于运行状态,现在按键盘上的F5 或依次点击菜单栏Run--Start Debugging,即可启动模块的调试(当然前提是在模块中设置了断点),可以看到模块运行到第一个断点处暂停了

步骤 5:当本次调试结束后,想要从步骤2开始再次调试且不换端口的话,终端可能报错 "The address already in use",说明端口 '5678' 仍然被上一次的调试中的 python 命令所占用(我们可以运行以下命令来验证)

python 复制代码
netstat -anp | grep 5678

其中 netstat 命令的功能是查看各端口的使用情况,我们从 "netstat -anp" 的返回信息中过滤出包含 '5678' 的条目,可以看到此时 5678 端口确实被进程号为 793(假设) 的 python 命令所占用,那么为了重新使用这个端口进行新的调试,我们需要用以下命令终止上述进程并释放这个端口

python 复制代码
kill 793

此时可以再运行上述 netstat 命令验证一下 5678 这个端口是否被释放

步骤 7:当端口被释放后就变成可用的了,于是可以从步骤2开始下一次调试了

相关推荐
开开心心_Every2 分钟前
在线看报软件, 22家知名报刊免费看
linux·运维·服务器·华为od·edge·pdf·华为云
木子欢儿1 小时前
debian 13 安装配置ftp 创建用户admin可以访问 /mnt/Data/
linux·运维·服务器·数据库·debian
wsad05321 小时前
Xshell 连接 CentOS 7 Minimal 完整配置指南
linux·运维·centos
小程同学>o<1 小时前
Linux 应用层开发入门(二十三)| 异步通知方式读取输入数据
linux·嵌入式软件·地瓜机器人·atomgit·linux应用层开发·openloong开源社区·开源新春集福
czxyvX2 小时前
005-Linux基础开发工具
linux
Linux运维技术栈2 小时前
jumpserver堡垒机从 CentOS 7 迁移至 Rocky Linux 9 实战指南
linux·运维·服务器·centos·rocky
wsad05322 小时前
CentOS 7 Minimal 常用软件工具安装指南
linux·运维·centos
开开心心就好3 小时前
轻松加密文件生成exe,无需原程序解密
linux·运维·服务器·windows·pdf·harmonyos·1024程序员节
济6173 小时前
ARM Linux 驱动开发篇----字符设备驱动开发(6)---测试chrdevbase 字符设备驱动开发实验--- Ubuntu20.04
linux·运维·驱动开发
小程同学>o<3 小时前
Linux 应用层开发入门(二十二)| poll_select方式读取输入数据
linux·嵌入式软件·地瓜机器人·atomgit·linux应用层开发·openloong开源社区·开源新春集福