解决Pycharm中SystemError报错

本文探讨了在使用Python监听Kafka生产者推送的消息时遇到的系统错误问题,分析了可能的原因,包括C语言代码编译问题和调试器对生成器的影响,并提供了在PyCharm环境下通过修改配置避免错误的解决方案。

报错描述

- 代码逻辑大致是, 开启线程, 监听kafka生产者push的topic消息。
- 问题出现在监听过程中, 线程在接收几条topic之后出现报错, 不再处理数据

报错代码

Exception ignored in: <generator object _yield_value at 0x0000011ACEDF22B0>
Traceback (most recent call last):
 File‘F:\PycharmProjects\PycharmProjects\Source\addons\kafka\models\kafka_operation.py’, line 100, in _yield_value
    yield item
SystemError: error return without exception set

出现原因

- 查了报错,一种可能是其他语言的代码(C语言)编译成Python字节码但没有设置错误,就会出现这种报错
- 另一种可能是调试器干扰了生成器的实际内部Python代码, 因为我们看到的报错代码块都是yield部分

解决方案

1、基于我们是在pycharm中调试的
在Run->Edit Configurations中添加Environment variable:
PYDEVD_USE_FRAME_EVAL=NO

2、 其他环境可以设置env变量
PYDEVD_USE_FRAME_EVAL=NO

更新问题

  • 一个很蠢的问题, 线程死活接收不到生产者消息, 是因为我手动打开了数据库游标,但是没在结束的时候关闭 ,记下来喵喵喵
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值