Wie tausche ich Daten zwischen zwei Python-Anwendungen aus?

9

Ich habe zwei Python-Anwendungen. Ich muss Befehle und Daten zwischen ihnen senden (zwischen zwei Prozessen). Was ist der beste Weg, das zu tun?

Ein Programm ist ein Daemon, der Befehle und Parameter von einer anderen GUI-Anwendung akzeptieren sollte.

Wie kann ich Daemon dazu bringen, Befehle von der GUI aus zu überwachen, während er seinen Job macht? Ich bevorzuge Lösung wäre Crossplatform.

ps. Ich benutze pyqt4 und python.

    
PocketSam 13.10.2010, 09:02
quelle

3 Antworten

10

Sie können die folgenden Methoden für den Datenaustausch verwenden:

  1. Socket-Programmierung: In Qt können Sie auf das QtNetwork-Modul zugreifen. Beispiele finden Sie unter qt assistant

  2. IPC: Verwenden Sie den gemeinsam genutzten Speicher, der in der QSharedMemory-Klasse implementiert ist.

  3. Wenn diese Anwendung nur unter Unix-Betriebssystemen ausgeführt wird, können Sie eine Posix-basierte Nachrichtenwarteschlange usw. für den Datenaustausch verwenden

  4. DBUS: Sie werden feststellen, dass sowohl Python als auch Qt DBus-basierte Unterstützung haben. Im Fall von Python müssen Sie das entsprechende Modul finden.

  5. Verwenden des Multi Processing-Moduls

  6. Verwendung von Posix / SystemV-basierten IPC-Mechanismen, wie Pipes, Queue usw.

Ankur Gupta 13.10.2010, 09:09
quelle
2

Obwohl es nicht mit dem Weg der Kommunikation zusammenhängt, empfehle ich das pickle / cPickle-Modul (das Objekte in String-Streams codieren kann und umgekehrt). Sehr nützlich.

    
riviera 13.10.2010 11:04
quelle
0

Beispiel.

Programm_1.py

%Vor%

Programm_2.py

%Vor%

Verwendung:

%Vor%

Unter Windows kann dies zu einem schlechten Verhalten führen, da Windows einfache Datei-IO-Weiterleitungen verpatzt.

    
S.Lott 13.10.2010 11:26
quelle

Tags und Links