python操作kafka报错:return ‘<SimpleProducer batch=%s>‘ % self.async

本文介绍了一个关于Python 3.7中使用Kafka模块时出现的语法错误,并提供了详细的解决方案,包括如何通过更新kafka-python模块来解决async关键字冲突问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.遇到的问题

C:\ProgramData\Anaconda3\python.exe C:/git/base_function/kafka_usage.py
Traceback (most recent call last):
  File "C:/git/base_function/kafka_usage.py", line 6, in <module>
    from kafka import KafkaProducer
  File "C:\ProgramData\Anaconda3\lib\site-packages\kafka\__init__.py", line 23, in <module>
    from kafka.producer import KafkaProducer
  File "C:\ProgramData\Anaconda3\lib\site-packages\kafka\producer\__init__.py", line 4, in <module>
    from .simple import SimpleProducer
  File "C:\ProgramData\Anaconda3\lib\site-packages\kafka\producer\simple.py", line 54
    return '<SimpleProducer batch=%s>' % self.async
                                                  ^
SyntaxError: invalid syntax

2.解决方法

因为py3.7里面async已经变成了关键字。所以导致了不兼容。
解决办法:
使用最新的kafka版本,但是pyPI上的kafka还没有被替换成最新的,可以使用下面的方法升级kafka python
pip install kafka-python

同时也需要安装kafka

pip install kafka

在pycharm中运行测试出现以下问题:..\..\..\.venv\lib\site-packages\httprunner\runner.py:210 (TestgriBySupplierCompany.test_start) def load_debugtalk_functions() -> Dict[Text, Callable]: """load project debugtalk.py module functions debugtalk.py should be located in project root directory. Returns: dict: debugtalk module functions mapping { "func1_name": func1, "func2_name": func2 } """ # load debugtalk.py module try: > imported_module = importlib.import_module("debugtalk") ..\..\..\.venv\lib\site-packages\httprunner\loader.py:353: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ C:\Users\JY-JYZC400\AppData\Local\Programs\Python\Python38-32\lib\importlib\__init__.py:127: in import_module return _bootstrap._gcd_import(name[level:], package, level) ..\..\..\debugtalk.py:44: in <module> from before.pre import * ..\..\..\before\pre.py:24: in <module> from utils.db.producer import KafkaClient ..\..\..\utils\db\producer.py:8: in <module> from kafka import KafkaProducer ..\..\..\.venv\lib\site-packages\kafka\__init__.py:23: in <module> from kafka.producer import KafkaProducer _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ from __future__ import absolute_import from .kafka import KafkaProducer > from .simple import SimpleProducer E File "D:\Workspace\02_project\apitest_sc_inventory\.venv\lib\site-packages\kafka\producer\simple.py", line 54 E return '<SimpleProducer batch=%s>' % self.async E ^ E SyntaxError: invalid syntax ..\..\..\.venv\lib\site-packages\kafka\producer\__init__.py:4: SyntaxError During handling of the above exception, another exception occurred: self = <apitest_sc_inventory.testcases.scpl_idspmanagerserv.supplier_companyInventory.query_list_griBySupplierCompany_test.TestgriBySupplierCompany object at 0x076FB3D0> param = None def test_start(self, param: Dict = None) -> "SessionRunner": """main entrance, discovered by pytest""" ga4_client.send_event("test_start") print("\n") > self.__init() ..\..\..\.venv\lib\site-packages\httprunner\runner.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ..\..\..\.venv\lib\site-packages\httprunner\runner.py:63: in __init self.__project_meta = self.__project_meta or load_project_meta( ..\..\..\.venv\lib\site-packages\httprunner\loader.py:403: in load_project_meta debugtalk_functions = load_debugtalk_functions() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def load_debugtalk_functions() -> Dict[Text, Callable]: """load project debugtalk.py module functions debugtalk.py should be located in project root directory. Returns: dict: debugtalk module functions mapping { "func1_name": func1, "func2_name": func2 } """ # load debugtalk.py module try: imported_module = importlib.import_module("debugtalk") except Exception as ex: logger.error(f"error occurred in debugtalk.py: {ex}") > sys.exit(1) E SystemExit: 1 ..\..\..\.venv\lib\site-packages\httprunner\loader.py:356: SystemExit Process finished with exit code 1
最新发布
08-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值