我在我的项目中使用了confluent-kafka Python客户端。我试图用这个客户端创建一个Docker映像。
我面临以下错误:-
# 11 8.015 [pipenv.exceptions.InstallError]: In file included from /tmp/pip-install-so_whhii/confluent-kafka_9d9553bf46cf489bb25fcb2ac7698747/src/confluent_kafka/src/Admin.c:17:
# 11 8.015 [pipenv.exceptions.InstallError]: /tmp/pip-install-so_whhii/confluent-kafka_9d9553bf46cf489bb25fcb2ac7698747/src/confluent_kafka/src/confluent_kafka.h:23:10: fatal error: librdkafka/rdkafka.h: No such file or directory
# 11 8.015 [pipenv.exceptions.InstallError]: 23 | #include <librdkafka/rdkafka.h>
# 11 8.015 [pipenv.exceptions.InstallError]: | ^~~~~~~~~~~~~~~~~~~~~~
# 11 8.015 [pipenv.exceptions.InstallError]: compilation terminated.
# 11 8.015 [pipenv.exceptions.InstallError]: error: command '/usr/bin/gcc' failed with exit code 1
# 11 8.016 [pipenv.exceptions.InstallError]: [end of output]
根据我的搜索,它与苹果M1构建的librdkafka有关。
7条答案
按热度按时间dl5txlt91#
请参考Github issue。M1的问题是Homebrew安装在不同的位置,因此需要通过在
.zshrc
文件中包含这些行来将这些变量添加到环境中oyt4ldly2#
Confluent的工程师们显然非常关注他们的付费客户,在Python 3.10发布了很多很多个月之后,他们仍然没有发布包含该软件包的二进制文件的3.10 wheel。
https://github.com/confluentinc/confluent-kafka-python/issues/1219
你有两个选择:1,运行Python 3.9; 2,在安装
confluent-kafka
之前通过apt安装librdkafka-dev
(对于debian基本映像)。这个问题与Apple M1相同-即,没有为包含二进制文件的平台预先构建的轮子,但如果您试图构建一个
amd64
Linux映像,则修复起来要容易得多(通过安装librdkafka-dev
)。rkue9o1l3#
在非M1的Mac(英特尔)上,Python 3.10.6,我用以下代码解决了这个问题
axzmvihb4#
如果你在M1上的Docker容器中安装汇合Kafka,这对我很有帮助。
hfwmuf9z5#
为你的苹果M1预先构建的
confluent-kafka-python
二进制轮子似乎不存在。因此,为了安装这个包,
pip
试图从源代码构建它自己。但是librdkafka
看起来像是没有安装,因为你得到了librdkafka/rdkafka.h: No such file or directory
错误。您可以从源代码中找到针对不同平台here的具体安装说明。
lzfw57am6#
我在虚拟环境中尝试使用Python 3.9.13解决了这个问题。
6qfn3psc7#
在一个非M1的Mac上,Python 3.10.2,我用
brew install librdkafka
解决了这个问题。