Esegui programma su Mac per il comando "which" di UnixSto cercando di usare il comando Run Program() per eseguire il comando Unix "/usr/bin/which -a Python3". Sto ancora imparando, quindi mi scuso se la risposta sembra ovvia. Per la cronaca, sto usando JMP Pro 17.2 su macOS Sonoma 14.7.1. È importante notare la differenza con Mac, poiché sembrano esserci alcune sottili differenze di sintassi rispetto ai PC.
Tentativo 1 (solo per confermare che Esegui programma funziona):
RP = Run Program(
Executable("/usr/bin/which"),
Options({"Python3"}), //No "-a" modifier
readFunction("text")
);
Questo non genera alcun errore, ma restituisce solo un'istanza di Python3 ("/usr/bin/Python3"), e sto cercando tutte le istanze di Python3 sul computer dell'utente. Ma almeno mi dimostra che posso far funzionare la funzione Esegui programma.
Tentativo 2 (aggiungendo il modificatore "-a"):
RP = Run Program(
Executable("/usr/bin/which"),
Options({"-a Python3"}),
readFunction("text")
);
Questa operazione fallisce e restituisce:
"/usr/bin/which: illegal option --
usage: which [-as] program ...
"
Tentativo 3 (utilizzando una sintassi leggermente diversa):
RP = Run Program(
Executable("/usr/bin/which"),
Options({"-a", "Python3"}), //"-a" is now a separate list item
readFunction("text")
);
Questo non fallisce, ma restituisce la stessa cosa del mio primo tentativo (come se non ci fosse il modificatore "-a"):
Tentativo 4 (creazione di uno script bash ed esecuzione del comando 'which' da quello):
Ho creato il semplice file di testo e l'ho salvato sul mio desktop
#!/bin/bash
/usr/bin/which -a python3
Poi ho eseguito questo in JMP:
</CODE><CODE class=" language-jsl">RP = Run Program(
Executable("/bin/sh"),
Options({"/Users/stefannikles/Desktop/usrbinwhich.txt"}),
readFunction("text")
);
Non è stato restituito alcun errore, ma solo "".
Ho provato diverse altre soluzioni, ma nessuna sembra funzionare. Qualsiasi consiglio da parte di qualcuno sarà apprezzato. Grazie.
Automazione e scriptingmacOSRe: Aiuto nell'utilizzo di "Esegui programma"Il metodo #3 è corretto su Mac. Su Windows, anche il #2 funzionerebbe. Quale versione di JMP? Immagino che le versioni più recenti di JMP possano fare qualcosa per rendere la versione interna di Python più adatta e potresti riscontrare un effetto collaterale. @Paul_Nelson
#4 Forse bin/sh non è una shell che supporta il parametro -a?
Re: Aiuto nell'utilizzo di "Esegui programma"Grazie Craig. Il #3 non funziona per me. Solo per curiosità, sei riuscito a confermare che il #3 funziona sul tuo Mac? Ho provato sul computer di un utente con 4 istanze di Python, ma viene restituito un solo percorso Python. Stesso risultato sul mio. Sto eseguendo JMP Pro 17.2 su macOS Sonoma 14.7.1. Mi è stato detto che JMP 18 ha Python integrato, ma la nostra organizzazione usa ancora la versione 17.2.
Re: Aiuto nell'utilizzo di "Esegui programma"Mi dispiace, niente Mac. Ho eseguito l'opzione -a su Linux per vedere l'output. Su Mac, è necessario suddividere i parametri come hai fatto nel punto 3. Su Windows, vengono rianalizzati da una riga di comando costruita, ma non su Mac.
Re: Aiuto nell'utilizzo di "Esegui programma"/usr/bin/python3 è un file fornito con macOS per l'utilizzo da parte di macOS. Non è un Python attuale, ma l'unico restituito dal programma. Tutte le installazioni di Python.org vanno in /Library/Frameworks/Python.framework.
Sul mio macOS Sonoma 14.7.5 ho Python 3.10, 3.11, 3.12, 3.13 (e /usr/bin/python3 è 3.9.6)
-rwxr-xr-x 77 radice ruota 119008 19 mar 15:20 /usr/bin/python3*
io@la mia_macchina ~ % file /usr/bin/pyth
/usr/bin/python3: binario universale Mach-O con 2 architetture: [x86_64: eseguibile Mach-O a 64 bit x86_64] [arm64e: eseguibile Mach-O a 64 bit arm64e]
/usr/bin/python3 (per architettura x86_64): eseguibile Mach-O a 64 bit x86_64
/usr/bin/python3 (per architettura arm64e): eseguibile Mach-O a 64 bit arm64e
io@mia_macchina ~ % /usr/bin/python3
Python 3.9.6 (predefinito, ottobre 4 2024, 08:01:31)
[Clang 16.0.0 (clang-1600.0.26.4)] su Darwin
Per maggiori informazioni digita "help", "copyright", "credits" o "license".
>>> ^D
io@mia_macchina ~ % ls -l /Libreria/Frameworks/Python.framework/Versioni
totale 0
drwxrwxr-x 12 radici amministratore 384 17 apr 10:29 3.10/
drwxr-xr-x 10 io personale 320 10 apr 15:35 3.11/
drwxrwxr-x 11 radice amministratore 352 17 apr 10:31 3.12/
drwxrwxr-x@ 12 radice amministratore 384 aprile 8 16:26 3.13/
lrwxr-xr-x 1 radice ruota 4 apr 17 10:31 Current@ -> 3.12
L'ultimo Python installato è quello indicato da Current: ho installato l'ultimo aggiornamento binario per Python 3.12.
JMP 18 viene fornito con Python 3.11.x incorporato. La versione JMP 18.2.1 è stata aggiornata con l'aggiornamento di sicurezza Python 3.11.12. Gli EA di JMP 19 sono installati con la versione più recente di Python 3.13.x.
Nota sulle versioni di Python idonee: JMP non supporta la connessione ad Anaconda Python, ma solo Python.org Python. Con JMP 18 e JMP 19, solo il Python fornito da JMP funziona con JMP. Ma quel Python funziona immediatamente non appena si avvia JMP. JMP 18 e versioni successive offrono un editor di script Python e un editor di script JSL, e il codice Python ha accesso alle tabelle dati e la possibilità di chiamare JSL da Python, proprio come ora è possibile chiamare Python da JSL. JMP 17 su Mac dovrebbe trovare il codice Python corrente in /Library/Frameworks/Python.framework con il comando Python Init().