Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to interchange data between two python applications?

I have two python applications. I need to send commands and data between them (between two processes). What is the best way to do that?

One program is a daemon who should accept commands and parameters from another GUI application.

How can I make daemon to monitor comands from GUI, while making it's job? I prefer solution would be crossplatform.

p.s. I use pyqt4 and python.

like image 578
PocketSam Avatar asked Oct 13 '10 09:10

PocketSam


2 Answers

You can use the following methods for data interchange:

  1. Socket Programming : In Qt you can access QtNetwork module. See qt assistant for examples

  2. IPC : Use shared Memory implemented in QSharedMemory class.

  3. If this application will run on unix os only, then you can try Posix based message queue etc. for data interchange

  4. DBUS : You will find both python and Qt have DBus based support. In Case of python you need to find the relevant module.

  5. Using Multi Processing module

  6. Using Posix/SystemV based IPC mechanism aka pipes, queue, etc.

like image 118
Ankur Gupta Avatar answered Nov 11 '22 17:11

Ankur Gupta


While it's not related to the way of the communication, I recommend checking out the pickle/cPickle module (which can encode objects into string streams and vice versa). Very useful.

like image 2
riviera Avatar answered Nov 11 '22 17:11

riviera