一些背景知识:我正在研究我们团队中的其他开发人员将使用的一些 python 模块。每个模块的共同主题是一条或多条消息将发布到 Kafka。我们现在打算使用 Confluent Kafka 客户端。在我们的组织中,我们对 Python 开发还很陌生——我们传统上是一家 .NET 商店。
复杂性:虽然我们创建的代码将在 Linux (rhel 7) 上运行,但大多数开发人员将在 Windows 上完成他们的工作。
因此我们需要在每台开发人员机器上编译的 librdkafka C 库(它有自己的依赖项,其中之一是 OpenSSL)。然后 confluent-kafka 的 pip 安装应该可以正常工作,这意味着我们的软件包的 pip 安装可以正常工作。理论上。
首先,我在我的 Linux 笔记本电脑 (Arch) 上进行了安装。我知道我已经有了 OpenSSL 和其他可用的 zip lib 依赖项,所以这个过程很轻松:
- git 克隆 librdkafka 仓库
- 根据自述文件配置、制作和安装
- pip 安装 confluent-kafka
- 完成
librdkafka 安装到 /usr/local
:
/usr/local/lib/librdkafka.a
/usr/local/lib/librdkafka++.a
/usr/local/lib/librdkafka.so -> librdkafka.so.l
/usr/local/lib/librdkafka++.so -> librdkafka++.so.l
/usr/local/lib/librdkafka.so.l
/usr/local/lib/librdkafka++.so.l
/usr/local/lib/pkgconfig/rdkafka.pc
/usr/local/lib/pkgconfig/rdkafka++.pc
/usr/local/include/librdkafka/rdkafkacpp.h
/usr/local/include/librdkafka/rdkafka.h
现在是痛苦的部分,让它在 Windows 上运行:
- 安装precompiled OpenSSL
- git 克隆 librdkafka 仓库
- 在 VS2015 中打开
- 通过 NuGet 安装 libz
- 构建解决方案
- 安装到哪里???
这就是我卡住的地方。 Windows 7/8/10 机器上的标准安装是什么样的?
我从构建输出中得到以下内容,但不知道应该去哪里才能使 pip install confluent-kafka
“正常工作”:
/librdkafka/win32/Release/librdkafka.dll
/librdkafka/win32/Release/librdkafka.exp
/librdkafka/win32/Release/librdkafka.lib
/librdkafka/win32/Release/librdkafkacpp.dll
/librdkafka/win32/Release/librdkafkacpp.exp
/librdkafka/win32/Release/librdkafkacpp.lib
/librdkafka/win32/Release/zlib.dll
<and the .h files back in the src>
关于安装位置有什么建议吗?
最佳答案
我不确定在 Windows 上安装的理想位置是什么,但我运行了以下测试并取得了一些成功。
我将输出和 header 复制到 C:\test\lib
和 C:\test\include
,然后使用以下选项运行 pip 安装:
pip install --global-option=build_ext --global-option="-LC:\test\lib" --global-option="-IC:\test\include" confluent-kafka
不幸的是,这不太奏效,因为 confluent-kafka 设置目前不支持 Windows:https://github.com/confluentinc/confluent-kafka-python/issues/52#issuecomment-252098462
关于python - Windows安装librdkafka支持Python开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39901163/