pdb,让python文件在linux中跑起来

liftword5个月前 (01-21)技术文章46

近期在项目自动化脚本编写中,经常会在本地pycharm中写好脚本,然后上传到linux中运行。由于局限于网络的一些原因,本地pycharm无法调试这些py文件,只有linux上才有py运行所需要的模块,所以遇到了一个比较头疼的问题,那就是上传到linux的脚本,如何degug,一时间成了一个问题。直到了解了pdb模块,顿时柳暗花明又一村。

pdb是什么?它是如何使用的呢?

pdb是一种linux中调试python脚本的工具,类似于windows下在pycharm中使用debug一样的效果。由于是命令行模式的linux系统,所以调试文件使用pdb就再方便不过了。

pdb有两种模式,第一种是直接在python文件中"import pdb;pdb.set_trace()",直接直接运行python脚本就可以了。另一种是用python -m pdb py文件的方式单步调试。

下面我们首先介绍一下pdb的参数含义。

p:print,打印内容,可以加需要打印的参数,pp是好看一点的打印,需要注意一点打印的变量需要执行之后才可以打印出来,也就是在变量执行的语句下一行才可以使用p

s:step,执行下一条命令,如果是函数则进入函数中,执行函数的第一句

n:next,执行下一条语句,如果当前语句是函数,则执行函数,然后执行当前函数语句的下一条

r:return,退出当前正在执行的函数

c:continue,继续执行语句,直到遇到下一个断点停止

l:list,展示当前正在执行的语句附近的代码

run:重新启动调试

q:quit,退出调试

b:break,指定代码中哪一行添加断点

cl:clear,清楚断点

接着我们用第一种调试方式做个示例。

下面就看到报错的位置了

下面是第二种调试方式

这是演示了以下打印变量的过程

在实际的运用中,如果能大概知道函数出问题的地方的时候,可以在py文件中需要调试位置加上“import pdb;pdb.set_trace()”。如果一时没有头绪,那就可以直接python -m pdb py文件,一步一步分析代码了。

相关文章

怎么在linux上运行python(linux运行python命令)

Linux默认是已经安装好了Python程序目前来说,大多数的Linux发行版是安装了两个版本的Python程序一个是Python 2.x一个是Python 3.x一些系统自带的程序文件需要Pytho...

运维必备!用Python管理多个Linux服务器的连接与命令执行

引言:代码实现多个Linux服务器的SSH连接,支持添加、删除连接,执行命令,并返回标准输出。可以在需要时批量处理多个服务器,避免了手动逐个登录和执行命令的繁琐过程。代码封装如下:# -*- codi...

Linux 命令 su 和 sudo 的区别?(su命令和sudo命令的区别)

来源:Jun Tao地址:https://tanjuntao.github.io/之前一直对 su 和 sudo 这两个命令犯迷糊,最近专门搜了这方面的资料,总算是把两者的关系以及用法搞清楚了,这篇...

Win10系统如何定时运行Python程序

最近工作上遇到了需要开发自动化应用的需求,由此接触了Python这门编程语言,虽然理论还没学得好,但是在实践中学习也是一个好选择。项目需求:定时运行Python程序,打开指定应用并进行简单重复的操作。...

松勤技术精选:Python打包exe,换电脑也可直接运行哦!

为什么要打包exe有的时候只需要让别人运行某种功能,传输文件以及代码是需要别人配置好一定的环境才可以操作,而打包成exe文件就可以直接运行文件。pyinstaller打包python中毕竟常用的打包方...

透视Linux内核,BPF神奇的Linux技术入门

一 前言作为一个coder,时不时会遇到性能问题,有时候明明看资源,cpu,io都占用不高,程序的性能就是上不去,真有一种想进入到计算机里面看看到底发生什么的冲突;还有优化性能的时候不知道整个系统的短...