一. Pycharm在debug问题解决方案(人工智能方向)
前言
Pycharm在debug时总是出现一些恼人的问题,以下是博主在训练中遇到的问题及在网上找到的可用解决方案:
一、Frames are not available
在代码处多设置几个断点即可。
好像还有另一种原因,博主自己没遇到(希望之后也别遇到),先把解决方案贴在这里(详情见 二. Pycharm在Debug的时候出现frames are not available;Variable:Connected(多线程方向)
)
二、查看变量时一直显示collecting data并显示不了任何内容
在PyCharm,File->Setting->Build,Execution,Deployment->Python Debugger。把Gevent compatible勾选上即可解决,如下图所示:
【参考】
https://blog.csdn.net/discoverer100/article/details/99501027
二. Pycharm在Debug的时候出现frames are not available;Variable:Connected(多线程方向)
先说说我的情况,这样可以让你对号入座。
-
我是本地笔记本电脑使用Pycharm,但是Pycharm的Python解释器连接的是远程的实验室linux服务器。也就是说,你猜到了,我的是Pycharm专业版,因为专业版才有远程连接这个功能。
-
我运行代码一切正常,但是在调试的时候有点不对劲。除了上述frames are not available,在Variable那里还显示:Connected。另外,第一步调试可以成功跳到你的任何一个断点,但是此时Console几乎是挂掉的,查看变量没反应,然后点击下一步调试,直接无终止运行下去,有病。
我卡在这里很久,因为运行一切正常嘛!就是调试***。一开始我以为是项目太大了?导致那些数据变量都传不过来,本地内存存不下?我在想,不至于吧,数据变量是在服务器上啊,我想要看哪个变量,只传输那个变量过来而已,本地内存存不下是绝不可能的,而且一个变量能有多大,撑死1M吧,一个10000*10000的矩阵估计也没有1M吧。我本地内存16个G,难道存不下?
后来又想是不是连接服务器的网速的问题,也不至于啊,都2021年了,网速至少1M/s,我这5M起步吧。秒传啊。。
又想,是不是服务器被太多人用,所以他们把服务器内存占满了,导致调试不动了?不可能啊,我运行项目都没丝毫问题,
而且我还登录了服务器看了一下,内存还很多。所以肯定有鬼。
后来我终于发现了这个惊天大秘密:前方高能!!!
我的代码中使用了多线程,即下面的num_workers=10
。多线程在linux服务器上运行是没有问题的。
dataloader = DataLoader(dataset,
batch_size=args.batch_size,
shuffle=True,
num_workers=10,
collate_fn=MyDataset.collate_fn)
但是调试的时候会出问题,我的猜测是我们的Pycharm调试界面只支持主进程,线程开了之后就不能用了。
正如我上面所展示的,上面只是DataLoader的定义,还没有正式使用这个东西,所以调试功能在正式使用多线程之前一切正常。
但是到了下面之后,enumerate(dataloader)
开始正式使用上面定义的多线程,从此往后,Pycharm调试界面将会卡死。
for epoch in range(args.epochs):
model.train()
epoch_loss = []
for idx, feed_dict in enumerate(dataloader):
print(idx)
所以解决办法很简单了,不管你的代码是不是和我一样,请检查你的代码是否用了多线程。运行的时候开启多线程加快运行速度,但是调试的时候在代码中把多线程关闭!!!
dataloader = DataLoader(dataset,
batch_size=args.batch_size,
shuffle=True,
num_workers=0,#或者直接不要这个参数,默认是0
collate_fn=MyDataset.collate_fn)
这个问题困扰了我一下午,因为多线程调试并不会报错,只是用不了。解决了之后,很开心,因为全网百度谷歌找了都没有这个问题的答案,都是些牛头不对马嘴的胡扯答案!!!!
所以,如果帮到了你,请务必点赞,让我也感受感受你们解决了问题的喜悦!
完结撒花
三. Pycharm在debug是显示Frames are not available
很多新手在使用pycharm断点调试时会出现Frames are not available,我在网上找了好多解决方法但是没有用,最后在弹幕里看到有同学这样教,试了一下就好了,我把方法分享给大家,希望能帮到大家。
1.在要调试的代码出选择断点,然后点击右上角绿色的甲壳虫图标
2.然后点到左下角debugger界面,可以看见会出现Frames are not available。
3.我们在代码处再设置一个断点,如下图:
4.在左下角debugger界面将不会在报错,可以进行调试。
5.注意,调试的时候一定要选择当前要调试的文件。
四. 解决PyCharm调试查看变量时一直显示collecting data并报错Timeout waiting for response且看不到任何内容(人工智能方向)
1. 问题描述
如题,在用PyCharm进行Python代码调试查看具体变量时,会随机遇到一直显示collecting data,到最后报错Timeout waiting for response,在界面中看不到变量内部的内容,如下图所示:
2. 解决办法
在PyCharm,打开Setting界面,在如下设置项中勾选“Gevent compatible”即可,如下图所示:
至此,问题得到解决。
参考资料:
https://stackoverflow.com/questions/39371676/debugger-times-out-at-collecting-data
五. 关于Pycharm无法debug问题的总结
问题描述:
在Pycharm中写python时可以运行程序却突然不能debug。出现debug提示——pydev debugger: process XXXX is connecting,但是之后却一直处于等待连接状态而报错。
与该错误相关的网上的解决方案:
解决方案一:
Pycharm的网络被禁,需要解禁网络。
解决方案二:
去掉 ".idea"文件重启项目
尝试了所有的方案后还是不能解决我的问题,突然发现众多报错信息中有一个AttributeError: ‘Queue’ object has no attribute ‘put’。
难道和我自己写的queue.py文件中的Queue类有关?
更改了queue.py的文件名后问题解决!
原因大概是自己创建的queue.py文件代替了python3中自带的同名文件被调试程序调用而出错。
六. 解决pycharm无法debug问题
解决无法debug问题:
在搜索并尝试其他方法后都没用后,直接在设置里面的debug摆烂,把设置全部✔就可以了,真的是玄学。
问题描述
昨天晚上在pycharm上改代码,debug也是好好的,然后就突然不能用了,进入某个断点后就无法向下进行。并且这个断点之前的那些断点直接给我跳过了,界面一直是connected。
其他方法:
一、文件名和python自带的模块名重复了,这种情况的下建议将文件重命名即。
二、在环境变量run/debug configure里加上下面的参数,国外网站搜到的:
PYDEVD_USE_CYTHON=NO;PYDEVD_USE_FRAME_EVAL=NO
三、Pycharm里的setting pyqt compatable与pyqt5不兼容,需要修改,比如auto取消。
四、网络问题
建议:
建议:遇到这种问题排除网络和重命名后,直接在设置里面的debug里面打勾或者去掉✔尝试。
七. 记一次pycharm debug模式一直无效的解决过程
环境
Apple M2 Max
Mac OS 13.2.1
Pycharm 2022.3.2
Python 2.7.18
因为开发的项目比较老,从Windows平台迁移后Mac后一直出现无法debug的问题,run模式正常,具体报错如下:
SyntaxError: Non-ASCII character '\xcf' in file /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
搜了很多博客,说的方法基本是在文件头加上utf8的标识,实际上并没有用,stack overflow上有效的解答,在此记录一下。
参开链接:
https://stackoverflow.com/questions/58634837/pycharm-returns-non-asciii-error-on-running-in-django-server-in-debug-mode-work
解决方法:
打开以下文件
/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/_pydev_bundle/pydev_monkey.py
在文件找到对应的代码
from _pydevd_bundle.pydevd_command_line_handling import setup_to_argv
在这一行下添加一行
args = args[1:]
重新debug就可以正常工作
debug模式开启后,仍然无法断点的原因。查看以下配置,取消勾选:
配置完成。
八. 用Pycharm开发Flask框架设置debug模式没有效果的解决办法
debuge模式
-
在app.run()中传入一个关键字参数debug ,app.run(debug=True),就设置当前项目为debug模式
-
debug模式的两大功能:
1.当程序出现问题的时候,可以在页面中看到错误和出错的位置。
2.只要修改了项目中的‘Python’文件,程序会自动加载,不需要手动重新启动服务器。
解决办法一
这是Pycharm版本的问题。并不是flask框架本身的问题(不管你是如何设置的flask配置,还是通过加载config文件,还是通过run的时候传入形参,均没有效果)。
第一步
Pycharm会自动识别flask项目(即使你创建项目的时候并没有选择flask框架的模板)但是在你运行的时候依旧是下图所示,右上角以flask的logo运行的。
第二步
第三步:勾选FLASK_DEBUG选项,然后保存,返回主界面,再次运行,debug模式就已经打开了,再次运行程序,就有效果了。
运行结果效果图
解决办法二
这种办法,比较繁琐,推荐使用第一种
第一步
第二步
第三步:复制脚本路径,把原来的删除掉
第四步:新添加一个,然后应用,保存之后运行脚本,就ok了。
你可能感兴趣的文章:
-
您不知道的Python中global、nonlocal哪些事儿
-
Python之深浅拷贝
九. Pycharm:debugger连接到Python调试器失败
Connection to Python debugger failed Socket operation on nonsocket: configureBlocking
程序可以运行不能调试
Debugger忽然不能用了,找了很多种方法,终于能解决了,提供参考。
"G:\Program Files (x86)\Python\python3.10.4\python.exe" "G:\Program Files\pycharm\PyCharm 2022.1\plugins\python\helpers\pydev\pydevd.py" --multiprocess --qt-support=auto --client 127.0.0.1 --port 62764 --file "G:/Program Files/pycharm/PycharmProjects/untitled/qingganfenlei.py"
Traceback (most recent call last):
File "G:\Program Files\pycharm\PyCharm 2022.1\plugins\python\helpers\pydev\_pydev_bundle\pydev_imports.py", line 37, in <module>
execfile=execfile #Not in Py3k
NameError: name 'execfile' is not defined
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "G:\Program Files\pycharm\PyCharm 2022.1\plugins\python\helpers\pydev\pydevd.py", line 33, in <module>
from _pydev_bundle import pydev_imports, pydev_log
File "G:\Program Files\pycharm\PyCharm 2022.1\plugins\python\helpers\pydev\_pydev_bundle\pydev_imports.py", line 39, in <module>
from _pydev_imps._pydev_execfile import execfile
File "G:\Program Files\pycharm\PyCharm 2022.1\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18
4 exec(compile(contents+"\n", file, 'exec'), glob, loc)
^^^^
SyntaxError: invalid syntax
Process finished with exit code 1
试了以下几种方法
1.
file → setting → Build, Execution, Deployment → Python Debugger,取消打钩“PyQt compatible”。点击应用,ok。
未成功
2.
查看报的错里面有module “queue”,然后一看当前项目的文件夹里面是否有python文件名和系统自带的文件重名的问题,删除或者重命名即可。
未成功
3.
关闭电脑Windows安全中心中的病毒查杀
未成功
4.
以上方法均没有解决,后来试试看改报错的三个PyCharm 2022.1\plugins\python\helpers\pydev里的文件,发现有一个模型其妙的4,删除后,竟然可以Debugger了。
2022.1\plugins\python\helpers\pydev_pydev_imps_pydev_execfile.py", line 18
4 exec(compile(contents+“\n”, file, ‘exec’), glob, loc)
十. Pycharm Debug执行提示ModuleNotFoundError: No module named ‘_pydevd_bundle’
大家有时候 在window下面配置python环境后使用pycharm 开发调试的时候 会提示如下错误。
Traceback (most recent call last):
File “E:\Program Files\JetBrains\PyCharm Community Edition 2019.2\helpers\pydev\pydevd.py”, line 20, in
from _pydevd_bundle.pydevd_constants import IS_JYTH_LESS25, IS_PYCHARM, get_thread_id, get_current_thread_id,
ModuleNotFoundError: No module named ‘_pydevd_bundle’
原因:
实际上,windows系统出现这种问题是因为安装python环境的时候,使用的是 压缩包解压的。
解决方案:
从官方下载MSI安装包进行安装,修改pycharm解释器到刚安装的解释器。
十一. pycharm中加了断点却无法调试,直接执行到程序结束怎么解决
断点是我们在程序设计过程中一个非常重要的工具,不仅可以帮助我们理清一个大程序的执行思路,还可以让我们排查错误变得简单。但是pycharm的断点会遇到点小毛病,明明加了断点,但却形同虚设,一直执行完整个程序。
如上图,进行debug。这右边的箭头就是用来进行debug调试的,正常情况下,它们应该是蓝色,但现在确实白色 ,所以无法进行断点调试。解决方法也很简单。
1.首先,鼠标点击进行debug调试,这是最底栏的左侧会出现下图的控件,鼠标点击两个红圆的控件;
2.点击红圆的控件后,会出现以下界面,选中图中的“All”,再点击OK,关闭这个界面;
3.然后我们再进行debug调试,就会出现下面这个界面,箭头变成蓝色,说明调试功能正常了。
4.成功之后,就算不选中"All",也一样可以调试。
以上就是解决pycharm不能调试问题的一个方法,但是造成这个问题的原因有很多,这个方法只适应一种情况,仅供参考。
十二. Pycharm无法debug(分步调试),无法命中断点直接运行到结束的几种原因的总结!
Pycharm无法debug(分步调试),无法命中断点直接运行到结束的几种原因的总结!
情况一.
可能是因为File -> Settings ->Build, Execution, Deployment -> Python Debugger 中选项PyQt compatible 选择了Auto,去掉勾就好了。
情况二、
实际上你不小心选中了Mute Breakpoints,使得断点不起作用了。若要断点起作用只要取消选中即可。如下图所示:
情况三、
如果上面两个情况都没有用的话建议你删除idea文件,重新启动pycharm.希望我的总结对您有用!
十三. Connected to pydev debugger解释一下
“Connected to pydev debugger” 是指 Python 开发环境 PyDev 成功连接到调试器
(Debugger)。这通常是在调试 Python 代码时出现的信息,表示 PyDev 已经成功连接到调试器,可以开始调试代码了。
Connected to pydev debugger (build 223.8836.43) Process finished with exit code 0
这是Pycharm调试模式下的输出信息,表示程序已经正常结束并退出调试模式
。其中“Connected to pydev debugger (build 223.8836.43)”表示Pycharm已经成功连接到调试器,而“Process finished with exit code 0”则表示程序正常结束并返回了0作为退出码。
如果程序返回的是非0的退出码,则说明程序在执行过程中出现了错误。以下是一个示例代码:
def main():
print("Hello World!")
return 0
if __name__ == '__main__':
exit_code = main()
print("Process finished with exit code", exit_code)
Connected to pydev debugger (build 201.6668.115)是什么意思
"Connected to pydev debugger (build 201.6668.115)"是指Python开发环境PyDev成功连接到调试器,并且显示了调试器的版本号。这通常出现在PyDev启动时或者在调试Python代码时。
十四. pycharm 远程连接服务器并且debug, 支持torch.distributed.launch debug
敬请期待
小鲨鱼冲冲冲
Pycharm在debug问题解决方案
音程
(全网率先解决)Pycharm在Debug的时候出现frames are not available;Variable:Connected
安仔!
Pycharm在debug是显示Frames are not available
越野者
解决PyCharm调试查看变量时一直显示collecting data并报错Timeout waiting for response且看不到任何内容
章小幽
关于Pycharm无法debug问题的总结
yangxiaojie_c
解决pycharm无法debug问题
新生代ZS
记一次pycharm debug模式一直无效的解决过程
码路小匠
用Pycharm开发Flask框架设置debug模式没有效果的解决办法
m0_53758603
Pycharm:debugger连接到Python调试器失败
野人老雷
Pycharm Debug执行提示ModuleNotFoundError: No module named ‘_pydevd_bundle’
伊胜雪
pycharm中加了断点却无法调试,直接执行到程序结束怎么解决
python迷
Pycharm无法debug(分步调试),无法命中断点直接运行到结束的几种原因的总结!
Connected to pydev debugger解释一下文章来源:https://www.toymoban.com/news/detail-788703.html
pycharm 远程连接服务器并且debug, 支持torch.distributed.launch debug文章来源地址https://www.toymoban.com/news/detail-788703.html
到了这里,关于python&anconda 系列:Pycharm在debug问题的N种解决方案(一般程序、web方向、人工智能方向)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!