关于python运行脚本向kafka发数据,但一直报错的问题

背景

公司用python脚本创建生产者数据向kafka发送数据,安装下载Python3.12、PyCharm Community Edition 2024.1.3,然后用pip下载kafka-python依赖,但始终提示缺少依赖。

错误描述

C:\Users\wyf\Desktop\pythonProject\.venv\Scripts\python.exe C:\Users\wyf\Desktop\index.py 
Traceback (most recent call last):
  File "C:\Users\wyf\Desktop\index.py", line 3, in <module>
    from kafka import KafkaProducer
  File "C:\Users\wyf\Desktop\pythonProject\.venv\Lib\site-packages\kafka\__init__.py", line 23, in <module>
    from kafka.consumer import KafkaConsumer
  File "C:\Users\wyf\Desktop\pythonProject\.venv\Lib\site-packages\kafka\consumer\__init__.py", line 3, in <module>
    from kafka.consumer.group import KafkaConsumer
  File "C:\Users\wyf\Desktop\pythonProject\.venv\Lib\site-packages\kafka\consumer\group.py", line 13, in <module>
    from kafka.consumer.fetcher import Fetcher
  File "C:\Users\wyf\Desktop\pythonProject\.venv\Lib\site-packages\kafka\consumer\fetcher.py", line 19, in <module>
    from kafka.record import MemoryRecords
  File "C:\Users\wyf\Desktop\pythonProject\.venv\Lib\site-packages\kafka\record\__init__.py", line 1, in <module>
    from kafka.record.memory_records import MemoryRecords, MemoryRecordsBuilder
  File "C:\Users\wyf\Desktop\pythonProject\.venv\Lib\site-packages\kafka\record\memory_records.py", line 27, in <module>
    from kafka.record.legacy_records import LegacyRecordBatch, LegacyRecordBatchBuilder
  File "C:\Users\wyf\Desktop\pythonProject\.venv\Lib\site-packages\kafka\record\legacy_records.py", line 50, in <module>
    from kafka.codec import (
  File "C:\Users\wyf\Desktop\pythonProject\.venv\Lib\site-packages\kafka\codec.py", line 9, in <module>
    from kafka.vendor.six.moves import range
ModuleNotFoundError: No module named 'kafka.vendor.six.moves'

进程已结束,退出代码为 1

错误描述

问题分析与解决

1.判断解释器路径不对。

查看PyCharm-》设置-》项目-》python解释器,没有问题。环境变量也正常
查看python解释器环境变量

2.判断可能依赖版本与python版本不一致导致,重装依赖。

pip uninstanll kafka-python
pip instanll kafka-python

有的说不能用kafka,或者用pykafka,故都尝试了一遍,仍报原错误。

看到一篇文章说要下载setuptools依赖
pip instanll setuptools
下载后仍报原错误。

3.判断可能Python版本和依赖版本太高,与服务器的不一致。

问了同事,服务器使用的是Python2.7.5的。
卸载现有python,重新下载2.7.5
先到https://www.python.org/downloads/查找所需下载版本,然后点击“Download”
https://www.python.org/downloads/release/python-275/选择合适版本下载
下载
下载完成后,2.7.5不会默认配置环境变量,需要自己配环境,D:\Python;D:\Python\Scripts,Scripts文件夹默认是没有的,可以先自己创建,然后下载pip,setuptools,我是在PyCharm-》设置-》项目-》python解释器-》+,进行搜索添加的,
环境
安装依赖
安装成功后,用pip安装kafka-python,运行,报错,提示pip不能用,查了一下是python2.7已经停止支持,pip仅21以下支持pip,但我的符合,该问题未解决(更新:解决参考;https://blog.csdn.net/ic_xcc/article/details/123731602)。我的解决方案是,下载kafka-python至本地安装。
安装kafka-python安装包。注意的是kafka-python 1.3.5是python2.7最后一个支持版本,所以要下载一下的版本,我下载1.3.5的。kafka-python 1.3.5下载地址
移动至目标文件夹;我的是:D:\Python\Lib\site-packages
打开命令行,运行:pip install kafka_python-1.3.5-py2.py3-none-any.whl。
之后打开项目,运行文件,发现可以成功运行。

参考链接:
[1]:https://zhuanlan.zhihu.com/p/416872266
[2]:https://blog.csdn.net/weixin_44548098/article/details/132874420
[3]:https://github.com/dpkp/kafka-python/issues/2412

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值