Installer librdkafka sur Windows pour supporter le développement de Python

Un peu d’arrière-plan: je travaille sur des modules python que d’autres développeurs de notre équipe utiliseront. Un thème commun à chaque module est qu’un ou plusieurs messages seront publiés sur Kafka. Nous avons actuellement l’intention d’utiliser le client Confluent Kafka. Nous sums nouveaux dans le développement de python dans notre organisation – nous avons toujours été un magasin .NET.

La complication: alors que le code que nous créons fonctionnera sous Linux (rhel 7), la plupart des développeurs feront leur travail sous Windows.

Nous avons donc besoin de la bibliothèque librdkafka C compilée sur chaque machine de développement (qui possède ses propres dépendances, l’une d’entre elles étant OpenSSL). Ensuite, une installation pip de confluent-kafka devrait simplement fonctionner, ce qui signifie qu’une installation pip de notre paquet fonctionnera. Théoriquement.

Pour commencer, j’ai fait l’installation sur mon ordinateur portable Linux (Arch). Je savais que OpenSSL et les autres dépendances de la librairie zip étaient déjà disponibles.

  • Git Clone Librdkafka Repo
  • configurer, créer et installer selon le README
  • pip installation confluent-kafka
  • terminé

L’installation de librdkafka est entrée dans /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 

Maintenant, la partie douloureuse, le faisant fonctionner sur Windows:

  • installer OpenSSL précompilé
  • Git Clone Librdkafka Repo
  • ouvert dans VS2015
  • installer libz via NuGet
  • construire une solution
  • installer à où ???

C’est là que je suis coincé. À quoi ressemblerait une installation standard sur une machine Windows 7/8/10?

J’ai les éléments suivants à partir de la sortie de la construction, mais aucune idée de ce qui devrait aller où pour rendre le pip install confluent-kafka “juste travailler”:

 /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  

Des recommandations sur un emplacement d’installation?

    Je ne suis pas sûr de l’endroit idéal pour installer Windows, mais j’ai réussi le test suivant.

    J’ai copié ma sortie et mes en-têtes sur C:\test\lib et C:\test\include , puis j’ai exécuté une installation avec les options suivantes:

      pip install --global-option=build_ext --global-option="-LC:\test\lib" --global-option="-IC:\test\include" confluent-kafka 

    Malheureusement, cela ne fonctionne pas tout à fait car la configuration de confluent-kafka ne prend pas en charge Windows pour le moment: https://github.com/confluentinc/confluent-kafka-python/issues/52#issuecomment-252098462

    C’est une vieille question, mais il semble que la réponse ne soit pas encore facile. Aussi Confluent semble trop occupé pour travailler sur Windows supportant …

    J’ai eu le même mal de tête il y a quelques semaines et après quelques recherches, j’ai réussi à le faire fonctionner sous Windows. J’ai enregistré mes résultats et téléchargé une bibliothèque pré-compilée sur mon Git. Veuillez vérifier si cela vous aide. :RÉ

    https://github.com/MichaelZhangCA/confluent-kafka-python

    Mon environnement est la version Python 3.6 64 bits mais, idéalement, il devrait également fonctionner sur 32 bits si vous suivez la même approche.