ich habe ein Problem für das ich im Forum und mit Google keine für mich verständliche Lösung gefunden habe.
Die Aufgabenstellung:
Ich muss eine komfortable, bidirektionale Interprozess-Kommunikation zwischen zwei Python Prozessen aufsetzten. Da sich die Prozesse später auf zwei verschiedenen Rechnern befinden werden, werde ich wohl auf eine Art Socket-Kommunikation zurückgreifen müssen. Dabei läuft ein Prozess auf Python 2.7.15 und der andere auf Python 3.7.3. Ja ich weiß, Python 2 wird nicht mehr gewartet. Aber es handelt sich dabei um eine alte Industrie-Anlage und ich habe keinen Einfluss auf die installierten Laufzeitumgebungen.
Bei meiner Recherche bin ich auf folgende Lösung gestoßen: https://stackoverflow.com/questions/692 ... -in-python.
Besonders gut gefällt mir daran, dass ich beliebige Python Objekte übertragen kann ohne mich um Serialisierung / Deserialisierung kümmern zu müssen.
Die auf multiprocessing.connection basierende Lösung funktionierte auch einwandfrei... bis ich einen Prozess in einer Python 2.7 Umgebung betreiben wollte...
Zum Problem:
Sobald ich im Python 2 Prozess Daten empfangen möchte, bekomme ich folgende Meldung angezeigt:
Code: Alles auswählen
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Python27\lib\threading.py", line 801, in __bootstrap_inner
self.run()
File "C:/_repo/IPC_Receiver/multi/async_listener.py", line 23, in run
msg = conn.recv()
ValueError: unsupported pickle protocol: 4
Jetzt dachte ich mir so: "Es kann ja nicht so schwer sein der Send() Methode (von multiprocessing.connection -> Listener oder Client) beizubringen ein älteres Pickle Format zu verwenden..."
... und hier stehe ich jetzt und finde keine Lösung.

Zur Frage:
a) Weiß jemand, wie man Python 3 multiprocessing.connection davon überzeugt ein älteres Pickle Format zu verwenden?
b) Hat jemand eine bessere Lösung für meine in der Aufgabenstellung beschriebene Anforderung?
Ich habe schon einen halben Tag in die Suche einer Antwort auf Frage a) investiert.
Lösung a) ist abgesehen vom Problem mit dem Pickle Format fertig. Darum würde ich Lösungsansätze die darauf basieren bevorzugen.
Hoffe mir kann jemand den entscheidenden Tipp geben. Vielen Dank im Voraus!