Exécuter un exe python à partir de Run program()J'ai un exécutable python (donc moi ou d'autres n'avons pas besoin de python installé sur le pc) qui peut analyser certaines données...
J'aimerais appeler et exécuter cela à partir de JMP, mais je ne suis pas sûr de la meilleure façon car j'aimerais pouvoir fournir des variables à cet exe python à partir de JMP et obtenir le retour.
Je l'ai fait avec succès en utilisant les commandes python intégrées, mais jamais avec un fichier exe python. L'une des variables que j'aurais besoin d'alimenter est une table de données. Actuellement, j'aurais besoin que JMP enregistre la table en tant que .csv dans un emplacement temporaire, puis cet exe python peut s'exécuter et modifier ce .csv ... puis JMP peut ouvrir le fichier CSV mis à jour (je n'ai pas ce flux codé en JSL car je pense qu'il doit y avoir un meilleur moyen)
Des pensées? J'ai une expérience minimale avec Run Command() donc tous les pointeurs de départ seront appréciés 
Merci!
ScriptRe: Exécuter un exe python depuis Run program()L'utilisation d'un exécutable construit à partir d'un programme Python via RunProgram ou l'appel de l'interpréteur Python avec le script Python de RunProgram est similaire. Ni l'un ni l'autre n'a l'intégration que l'utilisation du Python intégré a. Vous devrez utiliser quelque chose comme un fichier CSV pour envoyer des données au programme Python et récupérer les données du programme Python. Vous pouvez également transmettre des paramètres de ligne de commande au fichier .exe. (Ou à l'interpréteur python.)
Dans votre cas, je suggérerais d'écrire le CSV dans le répertoire $temp et d'imprimer les résultats en python. Passez le chemin csv via la ligne de commande. Utilisez RunProgram(...readfunction("text")...) pour récupérer la chaîne de sortie imprimée. supprimez le fichier de répertoire temporaire.
Re: Exécuter un exe python depuis Run program()Je ne l'ai pas fait et je ne peux pas le tester facilement sur mon système pour le moment, mais il semble que vous puissiez lire à partir de la sortie standard d'un exécutable et écrire dans les flux stdin d'un exécutable à l'aide de JSL : https://community.jmp.com/kvoqx44227/attachments/kvoqx44227/discovery-2016-content/67/1/Run%20Program.pdf
Python peut lire depuis stdin (et sortir vers stdout) comme une opération de type fichier : Python - stdin, stdout et stderr - AskPython
Je suis donc raisonnablement sûr que vous pourriez « < Écrire » votre table de données ligne par ligne dans le stdin de l'exécutable de JMP, utiliser une méthode de type fichier pour lire les lignes de JMP en Python, construire ces lignes dans un Cadre de données Pandas, exécutez vos opérations Python, puis affichez le cadre de données Pandas ligne par ligne de Python vers la sortie standard, en le renvoyant à JMP.
Re: Exécuter un exe python depuis Run program()@Michael_MXAK Hum, c'est aussi une idée intéressante. Pour les fichiers plus petits, cela peut fonctionner correctement. Certains de ces fichiers peuvent devenir assez volumineux, de sorte que la méthode ligne par ligne peut ne pas être trop efficace... C'est une excellente matière à réflexion, cependant.
Re: Exécuter un exe python depuis Run program()@Craige_Hales Ok, cela a du sens... c'est là que je me penchais, mais la sortie des informations dans la chaîne pour la récupération serait plus facile qu'un 2ème csv à gérer.