Exécuter le programme sur Mac pour la commande Unix « which »J'essaie d'utiliser la commande Run Program() pour exécuter la commande Unix « /usr/bin/which -a Python3 ». J'apprends encore, donc désolé si la réponse semble évidente. Pour information, j'utilise JMP Pro 17.2 sous macOS Sonoma 14.7.1. Il est important de noter que la syntaxe utilisée sur Mac diffère légèrement de celle des PC.
Tentative 1 (juste pour confirmer que l'exécution du programme fonctionne) :
RP = Run Program(
Executable("/usr/bin/which"),
Options({"Python3"}), //No "-a" modifier
readFunction("text")
);
Cela ne génère aucune erreur, mais ne renvoie qu'une seule instance de Python3 (« /usr/bin/Python3 »), et je recherche toutes les instances de Python3 sur l'ordinateur de l'utilisateur. Cela me démontre au moins que je peux exécuter la fonction « Exécuter le programme ».
Tentative 2 (en ajoutant le modificateur « -a ») :
RP = Run Program(
Executable("/usr/bin/which"),
Options({"-a Python3"}),
readFunction("text")
);
Cela échoue et renvoie :
"/usr/bin/which: illegal option --
usage: which [-as] program ...
"
Tentative 3 (en utilisant une syntaxe légèrement différente) :
RP = Run Program(
Executable("/usr/bin/which"),
Options({"-a", "Python3"}), //"-a" is now a separate list item
readFunction("text")
);
Cela n'échoue pas, mais renvoie la même chose que lors de ma première tentative (comme s'il n'y avait pas de modificateur « -a ») :
Tentative 4 (créer un script bash et exécuter la commande « which » à partir de celui-ci à la place) :
J'ai créé le fichier texte simple et l'ai enregistré sur mon bureau
#!/bin/bash
/usr/bin/which -a python3
Ensuite, j'ai exécuté ceci dans JMP :
</CODE><CODE class=" language-jsl">RP = Run Program(
Executable("/bin/sh"),
Options({"/Users/stefannikles/Desktop/usrbinwhich.txt"}),
readFunction("text")
);
Cela n'a pas renvoyé d'erreur, mais seulement "".
J'ai essayé plusieurs autres solutions, mais aucune ne semble fonctionner. Tout conseil sera apprécié. Merci.
Automatisation et scriptsmacOSRe : Aide sur l'utilisation de « Exécuter le programme »La méthode n° 3 est correcte sur Mac. Sous Windows, la méthode n° 2 fonctionnerait également. Quelle version de JMP ? Je suppose que les versions les plus récentes de JMP pourraient améliorer la compatibilité de la version interne de Python, et vous pourriez constater un effet secondaire. @Paul_Nelson
#4 peut-être que bin/sh n'est pas un shell qui prend en charge le paramètre -a ?
Re : Aide sur l'utilisation de « Exécuter le programme »Merci Craig. Le point n°3 ne fonctionne pas chez moi. Juste par curiosité, as-tu pu confirmer que le point n°3 fonctionne sur ton Mac ? J'ai essayé sur l'ordinateur d'un utilisateur avec quatre instances de Python, mais un seul chemin Python est renvoyé. Même résultat sur le mien. J'utilise JMP Pro 17.2 sous macOS Sonoma 14.7.1. On m'a dit que JMP 18 intègre Python, mais notre organisation utilise toujours la version 17.2.
Re : Aide sur l'utilisation de « Exécuter le programme »Désolé, pas de Mac ici. J'ai exécuté l'option -a sous Linux pour voir le résultat. Sous Mac, il est nécessaire de séparer les paramètres comme vous l'avez fait en 3. Sous Windows, ils sont réanalysés à partir d'une ligne de commande construite, mais pas sous Mac.
Re : Aide sur l'utilisation de « Exécuter le programme »/usr/bin/python3 est fourni avec macOS et utilisable sous macOS. Il ne s'agit pas d'une version actuelle de Python, mais du seul fichier renvoyé par le programme. Toutes les installations Python.org se trouvent dans /Library/Frameworks/Python.framework.
Sur mon macOS Sonoma 14.7.5 j'ai Python 3.10, 3.11, 3.12, 3.13 (et /usr/bin/python3 est 3.9.6)
-rwxr-xr-x 77 racine roue 119008 19 mars 15:20 /usr/bin/python3*
moi@ma_machine ~ % fichier /usr/bin/pyth
/usr/bin/python3 : binaire universel Mach-O avec 2 architectures : [x86_64 : exécutable Mach-O 64 bits x86_64] [arm64e : exécutable Mach-O 64 bits arm64e]
/usr/bin/python3 (pour l'architecture x86_64) : exécutable Mach-O 64 bits x86_64
/usr/bin/python3 (pour l'architecture arm64e) : exécutable Mach-O 64 bits arm64e
moi@ma_machine ~ % /usr/bin/python3
Python 3.9.6 (par défaut, octobre) 4 2024, 08:01:31)
[Clang 16.0.0 (clang-1600.0.26.4)] sur Darwin
Tapez « aide », « copyright », « crédits » ou « licence » pour plus d’informations.
>>> ^D
moi@ma_machine ~ % ls -l /Library/Frameworks/Python.framework/Versions
total 0
drwxrwxr-x 12 racines administrateur 384 17 avril 10:29 3.10/
drwxr-xr-x 10 moi personnel 320 10 avril 15:35 3.11/
drwxrwxr-x 11 racines administrateur 352 17 avril 10:31 3.12/
drwxrwxr-x@ 12 racine administrateur 384 avril 8 16:26 3.13/
lrwxr-xr-x 1 racine roue 4 avril 17 10:31 Current@ -> 3.12
Le dernier Python installé est celui pointé par Current, j'ai installé la dernière mise à jour binaire pour Python 3.12.
JMP 18 est livré avec Python 3.11.x intégré. La version JMP 18.2.1 a été mise à jour avec la mise à jour de sécurité Python 3.11.12. Les EA JMP 19 sont installés avec la dernière version de Python 3.13.x.
Remarque sur les versions Python compatibles : JMP ne prend pas en charge la connexion à Anaconda Python ; seul Python.org est pris en charge. Avec JMP 18 et JMP 19, seul le Python fourni par JMP fonctionne avec JMP. Cependant, ce Python est immédiatement opérationnel dès le lancement de JMP. JMP 18 et les versions ultérieures offrent un éditeur de scripts Python ainsi qu'un éditeur de scripts JSL. Le code Python a accès aux tables de données et permet d'appeler JSL depuis Python, tout comme vous pouvez désormais appeler Python depuis JSL. JMP 17 sur Mac devrait simplement trouver le Python actuel dans /Library/Frameworks/Python.framework avec la commande Python Init().