⑴ PyCharm写的python,debug不了
The following workaround should help. I had a same problem in a simple Python script. PyCharm debugger didn't stop on a simple breakpoint and just ran to the end.
Thanks to Gabriel's answer, I checked the path to my script and it had Russian letters. Because I use Russian Windows and it creates admin user named 'Administrator' using Russian letters.
I changed the Russian letters to use only English letters from the project-path (just copied PyCharm projects folder to the root of disk and reloaded my project from new place. Nothing else was changed!). And the debugger immediately started working just fine and stopped on breakpoints!
It looks like this a bug that PyCharm debuger can't work with different national letters in the path. It very common situation outside English-speaking countries.
总结:检查你的pycharm debugger路径,是否有特殊字符。
⑵ WINGIDE中没有debugprobe
没有设置好的原因
1.首先,看下wingIDE的界面:
wingIDE的用户界面主要由三部分构成:编辑区、两个工具区。每个区域都有自己独立的菜单选项。编辑和切换按钮可以实现对文档的快速切换。SHIFT +F2可以使编辑区最大化。
2.检测你的python集成环境是否正确
在开始编辑代码前,我们需要首先确定wingIDE已经准确的找到了python安装程序。为了检查,我们需要用到Python Shell tool。在横着的工具栏上右键--->Insert tool-->python shell,你将看到如下: 如果它的显示不对,或者显示的python版本不对。我们可以使用Project---->project properties来指定environment。指定python的运行环境等信息。
⑶ python3.8版本,使用pycharm2019.3.3版本无法使用Debug调试,麻烦问下怎么解决
在cmd里输入
"D:\Program Files\python\python.exe" --version截图看一下版本(确认是python3.8)
⑷ python怎么debug就是在我需要的地方输出参数看是否正确之类的,别说open打开文件写入,用了框架位置变了
用了框架位置变了,你代码不会跟着变吗?定义个方法,
def log(errMsg):
f1 = open('errorLog的绝对路径','w')
f1.write(errMsg)
f1.close()
要记录错误信息就log(errorLog)
⑸ Loguru:Python 日志终极解决方案
日志的作用非常重要,日志可以记录用户的操作、程序的异常,还可以为数据分析提供依据,日志的存在意义就是为了能够在程序在运行过程中记录错误,方便维护和调试,能够快速定位出错的地方,减少维护成本。每个程序员都应该知道,不是为了记录日志而记录日志,日志也不是随意记的。要实现能够只通过日志文件还原整个程序执行的过程,达到能透明地看到程序里执行情况,每个线程、每个过程到底执行到哪的目的。日志就像飞机的黑匣子一样,应当能够复原异常的整个现场乃至细节!
最常见的是把输出函数 print() 当作日志记录的方式,直接打印各种提示信息,常见于个人练习项目里,通常是懒得单独配置日志,而且项目太小不需要日志信息,不需要上线,不需要持续运行,完整的项目不推荐直接打印日志信息,现实中也几乎没有人这么做。
我们可以在不少小项目里面看到作者自己写了一个日志模板,通常利用 print() 或者 sys.stdout 稍微封装一下即可实现简单的日志输出,这里的 sys.stdout 是 Python 中的标准输出流, print() 函数是对 sys.stdout 的高级封装,当我们在 Python 中打印对象调用 print(obj) 时候,事实上是调用了 sys.stdout.write(obj+'\n') , print() 将内容打印到了控制台,然后追加了一个换行符 \n 。
自写日志模板适合比较小的项目,可以按照自己的喜好编写模板,不需要太多复杂配置,方便快捷,但是这种记录日志的方式并不是很规范,有可能你自己觉得阅读体验不错,但是别人在接触你的项目的时候往往需要花费一定的时间去学习日志的逻辑、格式、输出方式等,比较大的项目同样不推荐这种方法。
一个简单的自写日志模板举例:
日志模板 log.py:
调用日志模块:
日志输出:
在一个完整的项目中,大多数人都会引入专门的日志记录库,而 Python 自带的标准库 logging 就是专门为日志记录而生的,logging 模块定义的函数和类为应用程序和库的开发实现了一个灵活的事件日志系统。由标准库模块提供日志记录 API 的关键好处是所有 Python 模块都可以使用这个日志记录功能。所以,你的应用日志可以将你自己的日志信息与来自第三方模块的信息整合起来。
logging 模块虽然强大,但是其配置也是比较繁琐的,在大型项目中通常需要单独初始化日志、配置日志格式等等,K哥在日常使用中通常都会对 logging 做如下的封装写法,使日志可以按天保存,保留15天的日志,可以配置是否输出到控制台和文件,如下所示:
输出日志:
它在控制台中是这样的:
当然,如果你不需要很复杂的功能,希望简洁一点,仅仅需要在控制台输出一下日志的话,也可以只进行简单的配置:
对于 logging 模块,即便是简单的使用,也需要自己定义格式,这里介绍一个更加优雅、高效、简洁的第三方模块:loguru,官方的介绍是:Loguru is a library which aims to bring enjoyable logging in Python. Loguru 旨在为 Python 带来愉快的日志记录。这里引用官方的一个 GIF 来快速演示其功能:
Loguru 仅支持 Python 3.5 及以上的版本,使用 pip 安装即可:
Loguru 的主要概念是只有一个:logger
控制台输出:
可以看到不需要手动设置,Loguru 会提前配置一些基础信息,自动输出时间、日志级别、模块名、行号等信息,而且根据等级的不同,还自动设置了不同的颜色,方便观察,真正做到了开箱即用!
如果想自定义日志级别,自定义日志格式,保存日志到文件该怎么办?与 logging 模块不同,不需要 Handler,不需要 Formatter,只需要一个 add() 函数就可以了,例如我们想把日志储存到文件:
我们不需要像 logging 模块一样再声明一个 FileHandler 了,就一行 add() 语句搞定,运行之后会发现目录下 test.log 里面同样出现了刚刚控制台输出的 debug 信息。
与 add() 语句相反, remove() 语句可以删除我们添加的配置:
此时控制台会输出两条 debug 信息:
而 test.log 日志文件里面只有一条 debug 信息,原因就在于我们在第二条 debug 语句之前使用了 remove() 语句。
Loguru 对输出到文件的配置有非常强大的支持,比如支持输出到多个文件,分级别分别输出,过大创建新文件,过久自动删除等等。 下面我们来详细看一下 add() 语句的详细参数:
基本语法:
基本参数释义:
当且仅当 sink 是协程函数时,以下参数适用:
当且仅当 sink 是文件路径时,以下参数适用:
这么多参数可以见识到 add() 函数的强大之处,仅仅一个函数就能实现 logging 模块的诸多功能,接下来介绍几个比较常用的方法。
add() 函数的 rotation 参数,可以实现按照固定时间创建新的日志文件,比如设置每天 0 点新创建一个 log 文件:
设置超过 500 MB 新创建一个 log 文件:
设置每隔一个周新创建一个 log 文件:
add() 函数的 retention 参数,可以设置日志的最长保留时间,比如设置日志文件最长保留 15 天:
设置日志文件最多保留 10 个:
也可以是一个 datetime.timedelta 对象,比如设置日志文件最多保留 5 个小时:
add() 函数的 compression 参数,可以配置日志文件的压缩格式,这样可以更加节省存储空间,比如设置使用 zip 文件格式保存:
其格式支持: gz 、 bz2 、 xz 、 lzma 、 tar 、 tar.gz 、 tar.bz2 、 tar.xz
Loguru 在输出 log 的时候还提供了非常友好的字符串格式化功能,相当于 str.format() :
输出:
在 Loguru 里可以直接使用它提供的装饰器就可以直接进行异常捕获,而且得到的日志是无比详细的:
日志输出:
在控制台的输出是这样的:
相比 Logging,Loguru 无论是在配置方面、日志输出样式还是异常追踪,都远优于 Logging,使用 Loguru 无疑能提升开发人员效率。本文仅介绍了一些常用的方法,想要详细了解可参考 Loguru 官方文档 或关注 Loguru GitHub 。
⑹ python 不能debug 然后报错
就是你要跑的程序引入或者使用了wxPython中的winpdb图形界面。需要安装wxpython,但是你的电脑里面没有或者安装了旧版的wxpython。
去http://www.wxpython.org/download.php
下载一个新的安装再试试。
⑺ python代码怎么debug
在需要插入断点的地方,加入红色部分代码:如果_DEBUG值为True,则在该处开始调试(加入_DEBUG的原因是为了方便打开/关闭调试)。
#!/usr/bin/python
_DEBUG=True
def debug_demo(val):
if _DEBUG == True:
import pdb
pdb.set_trace()
⑻ Python pyqt异常错误信息没有提示
最近在写Python的桌面工具,用到pyqt5,但是发现这个写好界面报错之后(崩溃),在控制台里边没有一点错误信息,这排查起来很不方便啊
在Run/Debug Configurations 中,选择当前的工程,然后在Execution 中勾选 Emulate terminal in output console
然后控制台就可以畅快的打印报错信息了
⑼ 怎么使用PYTHON的debug
可以加参数运行:python -i file.py,然后用 dir() 查看有哪些变量或者对象,直接输入对象名就可以查看内容,可以解决一部分问题。也可以在你怀疑有错的地方 print 提示信息。
⑽ python debug怎么用
1.打开pycharm,新建一个python程序,命名为excel.py。
2.直接贴出代码,如果是hello world就不存调试的问题了!
相关推荐:《Python基础教程》
3.介绍调试的菜单操作,在【菜单栏】选择【RUN】,下拉菜单里选择【debug excel.py】或者【Debug...】,这两个功能是一样的,都是调试功能。
4.介绍快捷键调试,调试:CTRL+SHLFT+F9,执行是CTRL+SHLFT+F10,当前调试SHLFT+F9,当前执行SHLFT+F10,还有很多,
5.贴出调试的结果,会具体提示一些警告或者异常,因为本例已经调试过,所以没有异常。