更换kafka包为kafka-python是否需修改Docker Compose配置?
问题解答
不需要修改你当前的Docker Compose配置。
你遇到的SyntaxError on "self.async"错误,根源是你安装的Python包kafka(注意不是kafka-python)内部使用了Python关键字async作为变量名,这在Python 3.7及以上版本会触发语法错误——这个问题和容器里的Kafka、ZooKeeper服务镜像完全无关,所以调整Docker Compose里的Kafka/ZooKeeper配置解决不了问题。
正确的解决步骤:
- 卸载存在问题的旧包:
pip uninstall kafka -y - 安装官方维护的
kafka-python包:pip install kafka-python - 确认代码中的导入语句正确(
kafka-python的导入路径和旧包一致,但依赖包已替换):from kafka import KafkaProducer
如果你的Python应用是在Docker容器中运行的,需要修改的是你的应用容器的Dockerfile,在其中添加安装kafka-python的命令,而非改动当前的Kafka/ZooKeeper Compose配置。
内容的提问来源于stack exchange,提问作者Nabih Bawazir
相关产品推荐
相关产品推荐

