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

目录

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

  • 一. Pycharm在debug问题解决方案(人工智能方向)
      • 前言
      • 一、Frames are not available
      • 二、查看变量时一直显示collecting data并显示不了任何内容
  • 二. Pycharm在Debug的时候出现frames are not available;Variable:Connected(多线程方向)
  • 三. Pycharm在debug是显示Frames are not available
  • 四. 解决PyCharm调试查看变量时一直显示collecting data并报错Timeout waiting for response且看不到任何内容(人工智能方向)
      • 1. 问题描述
      • 2. 解决办法
  • 五. 关于Pycharm无法debug问题的总结
      • 问题描述:
      • 与该错误相关的网上的解决方案:
          • 解决方案一:
          • 解决方案二:
          • 尝试了所有的方案后还是不能解决我的问题,突然发现众多报错信息中有一个AttributeError: ‘Queue’ object has no attribute ‘put’。
  • 六. 解决pycharm无法debug问题
      • 解决无法debug问题:
      • 问题描述
      • 其他方法:
          • 一、文件名和python自带的模块名重复了,这种情况的下建议将文件重命名即。
          • 二、在环境变量run/debug configure里加上下面的参数,国外网站搜到的:
          • 三、Pycharm里的setting pyqt compatable与pyqt5不兼容,需要修改,比如auto取消。
          • 四、网络问题
  • 七. 记一次pycharm debug模式一直无效的解决过程
      • 环境
      • 因为开发的项目比较老,从Windows平台迁移后Mac后一直出现无法debug的问题,run模式正常,具体报错如下:
          • 参开链接:
          • 解决方法:
  • 八. 用Pycharm开发Flask框架设置debug模式没有效果的解决办法
      • debuge模式
      • 解决办法一
          • 第一步
          • 第二步
          • 第三步:勾选FLASK_DEBUG选项,然后保存,返回主界面,再次运行,debug模式就已经打开了,再次运行程序,就有效果了。
      • 解决办法二
          • 第一步
          • 第二步
          • 第三步:复制脚本路径,把原来的删除掉
          • 第四步:新添加一个,然后应用,保存之后运行脚本,就ok了。
  • 九. Pycharm:debugger连接到Python调试器失败
      • 程序可以运行不能调试
      • Debugger忽然不能用了,找了很多种方法,终于能解决了,提供参考。
      • 试了以下几种方法
          • 1.
          • 2.
          • 3.
          • 4.
  • 十. Pycharm Debug执行提示ModuleNotFoundError: No module named ‘_pydevd_bundle’
      • 大家有时候 在window下面配置python环境后使用pycharm 开发调试的时候 会提示如下错误。
      • 原因:
      • 解决方案:
  • 十一. pycharm中加了断点却无法调试,直接执行到程序结束怎么解决
  • 十二. Pycharm无法debug(分步调试),无法命中断点直接运行到结束的几种原因的总结!
      • Pycharm无法debug(分步调试),无法命中断点直接运行到结束的几种原因的总结!
          • 情况一.
          • 情况二、
          • 情况三、
  • 十三. Connected to pydev debugger解释一下
  • 十四. pycharm 远程连接服务器并且debug, 支持torch.distributed.launch debug

一. 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)

但是调试的时候会出问题,我的猜测是我们的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解释一下

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

版权声明:本文为博主作者:坦笑&&life原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/weixin_54626591/article/details/134986855

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2024年2月19日
下一篇 2024年2月19日

相关推荐