python操作kafka报错:return '<SimpleProducer batch=%s>' % self.async
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
错误如上
原因:
因为py3.7里面async已经变成了关键字。所以导致了不兼容。
解决办法:
使用最新的kafka版本,但是pyPI上的kafka还没有被替换成最新的,可以使用下面的方法升级kafka python
pip install kafka-python
然后问题就解决了。
如用Docker,需要Dockerfile 中安装
requirements.txt 中如果有 kafka-python ,需要先加入卸载脚本 RUN pip uninstall kafka-python
FROM python:3.9.6 AS BASE WORKDIR / COPY . . RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple RUN pip install -r requirements.txt RUN pip install kafka-python==2.0.2 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ENTRYPOINT ["python","kafka_util.py"]

浙公网安备 33010602011771号