2016-10-06 3 views
4

Ein kleiner Hintergrund: Ich arbeite an einigen Python-Modulen, die andere Entwickler in unserem Team verwenden werden. Ein gemeinsames Thema jedes Moduls ist, dass eine oder mehrere Nachrichten an Kafka veröffentlicht werden. Wir beabsichtigen zu diesem Zeitpunkt, den Confluent Kafka Client zu verwenden. Wir sind ziemlich neu in der Python-Entwicklung in unserer Organisation - wir waren schon immer ein .NET-Shop.Installation von librdkafka unter Windows zur Unterstützung der Python-Entwicklung

Die Komplikation: Während der Code, den wir erstellen, auf Linux (Rhel 7) läuft, werden die meisten Entwickler ihre Arbeit unter Windows erledigen.

Also brauchen wir die Bibliothek librdkafka C, die auf jedem Entwickler-Rechner kompiliert wurde (mit eigenen Abhängigkeiten, von denen einer OpenSSL ist). Dann sollte eine Pip-Installation von confluent-kafka einfach funktionieren, was bedeutet, dass eine Pip-Installation unseres Pakets funktioniert. Theoretisch.

Um zu starten, habe ich die Installation auf meinem Linux-Laptop (Arch). Ich wusste, ich hatte bereits OpenSSL und die anderen zip lib Abhängigkeiten zur Verfügung, so dass dieser Prozess war kurz und schmerzlos:

  • git clone librdkafka Repo
  • configure, make und installieren pro README
  • pip installieren konfluenten-kafka
  • getan

Die librdkafka von installieren ging in /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 

Nun ist die schmerzhafte Teil, so dass es unter Windows arbeiten:

  • librdkafka Repo precompiled OpenSSL
  • git clone installieren
  • offen in VS2015
  • installieren libz über NuGet
  • build Lösung
  • installieren wo ???

Hier bin ich fest. Wie sieht eine Standardinstallation auf einer Windows 7/8/10-Maschine aus?

Ich habe folgende von der Build-Ausgabe, aber keine Ahnung, was gehen soll, wo um die pip install confluent-kafka „einfach funktionieren“ zu machen:

/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> 

Irgendwelche Empfehlungen an einem Installationsort?

Antwort

1

Ich bin nicht sicher, wo der ideale Ort für die Installation unter Windows wäre, aber ich habe den folgenden Test mit einigem Erfolg durchgeführt.

ich meine Ausgabe und Header C:\test\lib kopiert und C:\test\include, lief dann ein Pip mit den folgenden Optionen installieren:

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

Leider ist dies nicht ganz funktioniert, weil der konfluenten-kafka Setup Windows nicht unterstützt zu dieser Zeit: https://github.com/confluentinc/confluent-kafka-python/issues/52#issuecomment-252098462

Verwandte Themen