L'énoncé du problème est le suivant :
Je travaille avec Abaqus, un programme d'analyse de problèmes mécaniques. C'est essentiellement un interpréteur Python autonome avec ses propres objets, etc. Dans ce programme, j'exécute un script python pour configurer mon analyse (donc ce script peut être modifié). Il contient également une méthode qui doit être exécutée lorsqu'un signal externe est reçu. Ces signaux proviennent du script principal que j'exécute dans mon propre moteur Python.
Pour l'instant, j'ai le flux de travail suivant: Le script principal définit un booléen sur True lorsque le script Abaqus doit exécuter une fonction spécifique, et pickles ce booléen dans un fichier. Le script Abaqus vérifie régulièrement ce fichier pour voir si le booléen a été défini sur vrai. Si c'est le cas, il effectue une analyse et pickles la sortie, de sorte que le script principal puisse lire cette sortie et agir en conséquence.
Je recherche un moyen plus efficace de signaler à l'autre processus de démarrer l'analyse, car il y a beaucoup de vérifications inutiles en cours actuellement. L'échange de données via pickle n'est pas un problème pour moi, mais une solution plus efficace est certainement la bienvenue.
Les résultats de recherche me donnent toujours des solutions avec subprocess ou similaire, qui sont pour deux processus démarrés dans le même interpréteur. J'ai également examiné ZeroMQ car cela est censé réaliser des choses comme cela, mais je pense que c'est exagéré et j'aimerais une solution en python. Les deux interprètes fonctionnent en python 2.7 (bien que différentes versions).