J'ai deux applications Python. J'ai besoin d'envoyer des commandes et des données entre eux (entre deux processus). Quelle est la meilleure façon de faire ça? P>
Un programme est un démon qui devrait accepter des commandes et des paramètres d'une autre application d'interface graphique. P>
Comment puis-je faire du démon pour surveiller les Comands de l'interface graphique, tout en faisant son travail? Je préfère la solution serait crossplateform. P>
P.s. J'utilise Pyqt4 et Python. P>
3 Réponses :
Vous pouvez utiliser les méthodes suivantes pour l'échange de données: p>
IPC: Utilisez la mémoire partagée mise en œuvre dans QsharedMemory Class. P> LI>
Si cette application fonctionnera uniquement sur UNIX OS uniquement, vous pouvez essayer la file d'attente de messages basée sur POSIX, etc. Pour l'échange de données P> LI>
DBU: Vous trouverez à la fois Python et QT ont un support basé sur la DBU. En cas de python, vous devez trouver le module correspondant. P> li>
Utilisation du module multi-traitement p> li>
Utilisation du mécanisme IPC basé sur POSIX / SYSTEMV AKA Tipes, la file d'attente, etc. p> li> ol>
Est-il possible d'interagir entre les applications en utilisant uniquement Python? Par exemple avec le module de sous-processus et le popen.commiquez. Vous pensez que l'utilisation de la bibliothèque QT serait facile?
-1: Impossible de mentionner des tuyaux ordinaires et des SYS.STDIN et SYS.STDOUT ordinaires.
@S. Lott - Je ne suis pas sûr que sys.stdin code> serait utile dans ce cas s'il s'agit d'un démon communiquant avec une interface graphique car il est peu probable qu'une fois le processus lancerait l'autre.
@Dave Webb: Peut-être. Cependant, j'ai écrit des interfaces interfaces de l'interface graphique et communiquent avec le sous-processus STDIN et STDOUT. Donc, je pense que c'est viable.
@Pocketsam Vous devriez pouvoir utiliser le module multiprofessionnel et le faire aussi. J'ai utilisé le module multiprocessionnant et ça marche bien.
Bien que ce ne soit pas lié à la em> em> de la communication, je vous recommande de vérifier le module de cornichon / cpickle (qui peut encoder des objets dans des flux de chaîne et inversement). Très utile. P>
exemple.
programme_1.py p> programme_2.py p> utilisation: p> Program_1.py | Program_2.py
Similaires à Stackoverflow.com/ Questions / 3902997 / ...
Oh, lien utile. Merci. N'a pas trébuché pendant la recherche.