Führen Sie das Programm auf dem Mac für den Unix-Befehl „which“ ausIch versuche, mit dem Befehl „Run Program()“ den Unix-Befehl „/usr/bin/which -a Python3“ auszuführen. Ich lerne noch, also entschuldigen Sie, falls die Antwort offensichtlich erscheint. Zur Information: Ich verwende JMP Pro 17.2 unter MacOS Sonoma 14.7.1. Der Mac-Umstand ist wichtig zu beachten, da es einige subtile Syntaxunterschiede zu PCs zu geben scheint.
Versuch 1 (nur bestätigen, dass „Programm ausführen“ funktioniert):
RP = Run Program(
Executable("/usr/bin/which"),
Options({"Python3"}), //No "-a" modifier
readFunction("text")
);
Dies führt zu keinem Fehler, gibt aber nur eine Instanz von Python3 („/usr/bin/Python3“) zurück, obwohl ich nach allen Instanzen von Python3 auf dem Computer des Benutzers suche. Es zeigt mir aber zumindest, dass ich die Funktion „Programm ausführen“ zum Laufen bringen kann.
Versuch 2 (Hinzufügen des Modifikators „-a“):
RP = Run Program(
Executable("/usr/bin/which"),
Options({"-a Python3"}),
readFunction("text")
);
Dies schlägt fehl und gibt zurück:
"/usr/bin/which: illegal option --
usage: which [-as] program ...
"
Versuch 3 (mit leicht anderer Syntax):
RP = Run Program(
Executable("/usr/bin/which"),
Options({"-a", "Python3"}), //"-a" is now a separate list item
readFunction("text")
);
Dies schlägt nicht fehl, gibt aber dasselbe zurück wie bei meinem ersten Versuch (als ob es keinen Modifikator „-a“ gäbe):
Versuch 4 (Erstellen eines Bash-Skripts und Ausführen des Befehls „which“ von dort):
Ich habe die einfache Textdatei erstellt und auf meinem Desktop gespeichert
#!/bin/bash
/usr/bin/which -a python3
Dann habe ich dies in JMP ausgeführt:
</CODE><CODE class=" language-jsl">RP = Run Program(
Executable("/bin/sh"),
Options({"/Users/stefannikles/Desktop/usrbinwhich.txt"}),
readFunction("text")
);
Dies hat keinen Fehler zurückgegeben, sondern nur "".
Ich habe verschiedene andere Dinge ausprobiert, aber nichts scheint zu funktionieren. Jeder Ratschlag ist willkommen. Danke.
Automatisierung und SkriptingmacOSBetreff: Hilfe zur Verwendung von „Programm ausführen“#3 ist der richtige Weg auf dem Mac. Unter Windows würde auch #2 funktionieren. Welche JMP-Version? Ich vermute, die neueren JMP-Versionen könnten die interne Python-Version verbessern, und es könnte zu Nebeneffekten kommen. @Paul_Nelson
#4 Vielleicht ist bin/sh keine Shell, die den Parameter -a unterstützt?
Betreff: Hilfe zur Verwendung von „Programm ausführen“Danke, Craig. Nr. 3 funktioniert bei mir nicht. Nur aus Neugier: Konnten Sie bestätigen, dass Nr. 3 auf Ihrem Mac funktioniert? Ich habe es auf einem Benutzercomputer mit vier Python-Instanzen versucht, aber es wird nur ein Python-Pfad zurückgegeben. Dasselbe Ergebnis bei mir. Ich verwende JMP Pro 17.2 auf MacOS Sonoma 14.7.1. Mir wurde gesagt, dass JMP 18 Python integriert hat, aber unsere Organisation verwendet immer noch 17.2.
Betreff: Hilfe zur Verwendung von „Programm ausführen“Leider kein Mac hier. Ich habe -a unter Linux ausgeführt, um die Ausgabe zu sehen. Unter Mac ist es notwendig, die Parameter wie in 3 aufzuteilen. Unter Windows werden sie aus einer erstellten Befehlszeile neu analysiert, unter Mac jedoch nicht.
Betreff: Hilfe zur Verwendung von „Programm ausführen“/usr/bin/python3 ist ein mit macOS mitgeliefertes Verzeichnis für die Verwendung durch macOS. Es ist kein aktuelles Python, sondern das einzige, das vom Programm zurückgegeben wird. Alle Python.org-Installationen befinden sich unter /Library/Frameworks/Python.framework
Auf meinem macOS Sonoma 14.7.5 habe ich Python 3.10, 3.11, 3.12, 3.13 (und /usr/bin/python3 ist 3.9.6)
-rwxr-xr-x 77 Wurzel Rad 119008 Mär 19 15:20 /usr/bin/python3*
me@my_machine ~ % Datei /usr/bin/pyth
/usr/bin/python3: Mach-O-Universalbinärdatei mit 2 Architekturen: [x86_64:Mach-O 64-Bit-ausführbare Datei x86_64] [arm64e:Mach-O 64-Bit-ausführbare Datei arm64e]
/usr/bin/python3 (für Architektur x86_64): Mach-O 64-Bit ausführbare Datei x86_64
/usr/bin/python3 (für Architektur arm64e): Mach-O 64-Bit ausführbare Datei arm64e
me@my_machine ~ % /usr/bin/python3
Python 3.9.6 (Standard, Okt 4 2024, 08:01:31)
[Clang 16.0.0 (clang-1600.0.26.4)] auf Darwin
Geben Sie „Hilfe“, „Copyright“, „Credits“ oder „Lizenz“ ein, um weitere Informationen zu erhalten.
>>> ^D
me@meine_Maschine ~ % ls -l /Library/Frameworks/Python.framework/Versions
insgesamt 0
drwxrwxr-x 12 Wurzel Administrator 384 Apr 17 10:29 3.10/
drwxr-xr-x 10 mich Personal 320 Apr 10 15:35 3.11/
drwxrwxr-x 11 Wurzel Administrator 352 Apr 17 10:31 3.12/
drwxrwxr-x@ 12 root Administrator 384 April 8 16:26 3.13/
lrwxr-xr-x 1 Wurzel Rad 4. Apr. 17 10:31 Aktuell@ -> 3.12
Das zuletzt installierte Python ist das, auf das Current verweist. Ich habe das neueste Binärupdate für Python 3.12 installiert.
JMP 18 wird mit eingebettetem Python 3.11.x ausgeliefert. Die Version JMP 18.2.1 wurde mit dem Sicherheitsupdate Python 3.11.12 aktualisiert. JMP 19 EAs werden mit der aktuellsten Python-Version 3.13.x installiert.
Hinweis zu geeigneten Python-Versionen: JMP unterstützt keine Verbindung zu Anaconda Python, sondern nur Python.org Python. Mit JMP 18 und JMP 19 funktioniert nur das von JMP bereitgestellte Python mit JMP. Dieses Python ist jedoch sofort nach dem Start von JMP einsatzbereit. JMP 18 und höher bieten Ihnen einen Python-Skripteditor sowie den JSL-Skripteditor. Der Python-Code hat Zugriff auf Datentabellen und kann JSL von Python aus aufrufen, genau wie Sie jetzt Python von JSL aus aufrufen können. JMP 17 auf dem Mac sollte das aktuelle Python einfach in /Library/Frameworks/Python.framework mit dem Python-Init()-Befehl finden.