当前位置:   article > 正文

python&anconda 系列:Pycharm在debug问题的N种解决方案(一般程序、web方向、人工智能方向)_pycharm debug报错

pycharm debug报错

Pycharm在debug问题的N种解决方案(一般程序、web方向、人工智能方向)




一. 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(多线程方向)

先说说我的情况,这样可以让你对号入座。

  1. 我是本地笔记本电脑使用Pycharm,但是Pycharm的Python解释器连接的是远程的实验室linux服务器。也就是说,你猜到了,我的是Pycharm专业版,因为专业版才有远程连接这个功能。

  2. 我运行代码一切正常,但是在调试的时候有点不对劲。除了上述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)
  • 1
  • 2
  • 3
  • 4
  • 5

但是调试的时候会出问题,我的猜测是我们的Pycharm调试界面只支持主进程,线程开了之后就不能用了。

正如我上面所展示的,上面只是DataLoader的定义,还没有正式使用这个东西,所以调试功能在正式使用多线程之前一切正常

但是到了下面之后,enumerate(dataloader)开始正式使用上面定义的多线程,从此往后,Pycharm调试界面将会卡死

for epoch in range(args.epochs):
    model.train()
    epoch_loss = []
    for idx, feed_dict in enumerate(dataloader):
        print(idx)
  • 1
  • 2
  • 3
  • 4
  • 5

所以解决办法很简单了,不管你的代码是不是和我一样,请检查你的代码是否用了多线程。运行的时候开启多线程加快运行速度,但是调试的时候在代码中把多线程关闭!!!

dataloader = DataLoader(dataset, 
                        batch_size=args.batch_size, 
                        shuffle=True, 
                        num_workers=0,#或者直接不要这个参数,默认是0
                        collate_fn=MyDataset.collate_fn)
  • 1
  • 2
  • 3
  • 4
  • 5

这个问题困扰了我一下午,因为多线程调试并不会报错,只是用不了。解决了之后,很开心,因为全网百度谷歌找了都没有这个问题的答案,都是些牛头不对马嘴的胡扯答案!!!!

所以,如果帮到了你,请务必点赞,让我也感受感受你们解决了问题的喜悦!

完结撒花




三. 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
  • 1

在这里插入图片描述

三、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
  • 1
  • 2
  • 3
  • 4

因为开发的项目比较老,从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
  • 1

搜了很多博客,说的方法基本是在文件头加上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
  • 1

在文件找到对应的代码

from _pydevd_bundle.pydevd_command_line_handling import setup_to_argv
  • 1

在这一行下添加一行

args = args[1:]
  • 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了。

在这里插入图片描述
在这里插入图片描述

你可能感兴趣的文章:




九. Pycharm:debugger连接到Python调试器失败

Connection to Python debugger failed Socket operation on nonsocket: configureBlocking
  • 1

程序可以运行不能调试

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

试了以下几种方法

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
'
运行

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解释一下

pycharm 远程连接服务器并且debug, 支持torch.distributed.launch debug

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/894852
推荐阅读
相关标签
  

闽ICP备14008679号