Esecuzione di un exe Python da Esegui programma()Ho un eseguibile python (quindi io o altri non abbiamo bisogno di python installato sul pc) che può analizzare alcuni dati...
Vorrei chiamarlo ed eseguirlo da JMP, ma non sono sicuro del modo migliore in quanto vorrei essere in grado di fornire variabili a questo exe Python da JMP e ottenere il ritorno.
L'ho fatto con successo utilizzando i comandi python integrati, ma mai con un file exe python in piedi. Una delle variabili che dovrei inserire è una tabella di dati. Attualmente avrei bisogno che JMP salvi la tabella come .csv in una posizione temporanea, quindi questo exe python può eseguire e modificare quel .csv ... quindi JMP può aprire il CSV aggiornato (non ho quel flusso codificato in JSL perché sento che ci deve essere un modo migliore)
qualche idea? Ho un'esperienza minima con Run Command(), quindi qualsiasi suggerimento iniziale sarà apprezzato 
Grazie!
ScriptingRe: Esecuzione di un exe Python da Esegui programma()L'utilizzo di un eseguibile creato da un programma Python tramite RunProgram o la chiamata all'interprete Python con lo script Python da RunProgram è simile. Nessuno dei due ha l'integrazione che ha l'utilizzo di Python integrato. Dovrai usare qualcosa come un file CSV per inviare dati al programma Python e per recuperare i dati dal programma Python. Puoi anche passare i parametri della riga di comando al file .exe. (O all'interprete Python.)
Nel tuo caso suggerirei di scrivere il CSV nella directory $temp e di stampare i risultati in python. Passa il percorso CSV tramite la riga di comando. Utilizzare RunProgram(...readfunction("text")...) per recuperare la stringa dell'output stampato. eliminare il file dir temp.
Re: Esecuzione di un exe Python da Esegui programma()Non l'ho fatto e al momento non posso testarlo facilmente sul mio sistema, ma sembra che tu possa leggere dallo stdout di un eseguibile e scrivere sui flussi stdin di un eseguibile usando JSL: https://community.jmp.com/kvoqx44227/attachments/kvoqx44227/discovery-2016-content/67/1/Run%20Program.pdf
Python può leggere da stdin (e inviare in output a stdout) come un'operazione simile a un file: Python - stdin, stdout e stderr - AskPython
Quindi sono ragionevolmente sicuro che potresti ` << Scrivi` la tua tabella di dati riga per riga nello stdin dell'eseguibile da JMP, usa un metodo simile a un file per leggere le righe da JMP in Python, costruisci quelle righe in un Pandas dataframe, esegui le tue operazioni Python, quindi genera il dataframe Pandas riga per riga da Python allo stdout, restituendolo a JMP.
Re: Esecuzione di un exe Python da Esegui programma()@Michael_MXAK Hmm, anche questa è un'idea interessante. Per file più piccoli potrebbe funzionare bene. Alcuni di questi file potrebbero diventare piuttosto grandi, quindi il metodo riga per riga potrebbe non essere eccessivamente efficiente... È un ottimo spunto di riflessione, però.
Re: esecuzione di un exe python da Esegui programma()@Craige_Hales Ok, ha senso ... ecco dove mi stavo appoggiando, ma l'output delle informazioni nella stringa per il recupero sarebbe più facile di un secondo csv da gestire.