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开始下一次调试了

相关推荐
FoldWinCard4 小时前
D5 Linux 网络及端口命令
linux·运维·服务器
零涂毕业设计6 小时前
毕业设计模块开发-OLED显示屏(IIC协议0.96寸)STM32 ESP32 FPGA Linux驱动免费分享
linux·stm32·单片机·嵌入式·esp32·fpga·oled
tedcloud1236 小时前
OmniRoute怎么部署?开源AI模型路由平台Linux部署教程
linux·服务器·人工智能·开源·音视频
霸道流氓气质6 小时前
KMS 密钥管理服务(Key Management Service)原理与实践
linux·服务器·数据库
SakitamaX6 小时前
LVS(Linux Virtual Server)概念详解
linux·运维·lvs
小张同学a.6 小时前
Linux系统管理
linux·运维
阿龙的工作记录7 小时前
深入理解Linux设备驱动模型
linux·嵌入式硬件·工作记录
代码村新手7 小时前
Linux的基本指令
linux·运维·服务器
hkj88088 小时前
Ubuntu 切换java版本
java·linux·ubuntu
撩得Android一次心动9 小时前
Linux编程笔记3【个人用】
linux·笔记