Starten von Python-Code aus einem JSL-Skript auf einem ServerHallo zusammen,
Auf einem Server (ohne Internetverbindung) habe ich ein JSL-Skript, das irgendwann ein Python-Skript (in einer virtuellen Umgebung) aufruft. Unten ist der JSL-Befehl, der Python aufruft. Das Python ist auf der Festplatte F:\ gespeichert.
strCommand = “Path\to\virutual_env\.venv\Scripts\activate.bat\!” && python \!“Path\to\python_script.py\!””;
Run Program( Executable( “cmd.exe” ), Options( “/C ” || strCommand ) );
- Wenn ich den gleichen Befehl direkt in der Server-Eingabeaufforderung ausführe (im Administratormodus oder nicht): „Path\to\virutual_env\.venv\Scripts\activate.bat“ && python „Path\to\python_script.py\“, funktioniert es
- Wenn ich diesen JSL-Code auf meinem PC ausführe, funktioniert er auch.
Wenn ich diesen JSL-Code jedoch auf dem Server ausführe, funktioniert er nicht mehr. Es wird kein Python ausgeführt, aber auch keine Fehlermeldung.
Zur Information: Da ich keinen Internetzugang habe, habe ich für die virtuelle Python-Umgebung die Pakete manuell auf den Server übertragen und die Umgebung zum Lesen der Pakete aktiviert.
Hatte jemand das gleiche Problem?
Automatisierung und SkriptingBetreff: Starten von Python-Code aus einem JSL-Skript auf einem ServerSind die Pfade auf Ihrem PC und auf dem Server identisch? Sind in den Pfaden Leerzeichen enthalten (es könnte möglicherweise Probleme mit den Anführungszeichen geben, wenn Sie „Programm ausführen“ verwenden)? Beginnen Sie damit, das Problem in kleinere Teile aufzuteilen:
- Können Sie den Pfad korrekt aufrufen?
- Können Sie Python ausführen?
- Können Sie Venv aktivieren?
- Und so weiter
Betreff: Starten von Python-Code aus einem JSL-Skript auf einem ServerHallo,
Vielen Dank! Tatsächlich war das Problem, dass es ein Leerzeichen im Pfad gab
Betreff: Starten von Python-Code aus einem JSL-Skript auf einem ServerWie haben Sie dieses Problem gelöst? Haben Sie den Dateipfad „repariert“ oder versucht herauszufinden, wie er in Anführungszeichen gesetzt werden muss, damit JMP/die Befehlszeile versteht, was Sie versuchen?
Betreff: Starten von Python-Code aus einem JSL-Skript auf einem ServerDa ich eine schnelle Lösung brauchte, habe ich zuerst die Leerzeichen im Pfad entfernt. Ich muss zugeben, dass ich danach nicht mehr auf das Thema zurückgekommen bin ... aber ich bin im Gespräch mit dem JMP-Support. Sie schlagen vor, Python von JMP18 zu verwenden, aber sie unterstützen keine virtuellen Umgebungen, sodass Sie die Paketversionen direkt von ihnen installieren müssten. Und ich habe Kunden, die im Moment „nur“ JMP 17 verwenden und dasselbe möchten. Ich halte Sie auf dem Laufenden
Betreff: Starten von Python-Code aus einem JSL-Skript auf einem ServerDie Möglichkeit , Zitate an die Anwendung „Programm ausführen“ weiterzugeben, besteht darin, Zitate an die Anwendung „Programm ausführen“ weiterzugeben. Ich habe etwas Ähnliches verwendet, als ich Zitate an die Anwendung „Programm ausführen“ weitergeben musste, und wenn ich mich richtig erinnere, auch an einige andere Methoden.
Betreff: Starten von Python-Code aus einem JSL-Skript auf einem Serverhttps://community.jmp.com/t5/Discussions/Unable-to-parse-speechmarks-quot-quot-into-powershell-using/mp/245968/highlight/true#M48328 (in „Speechmarks können nicht mit RunProgram in Powershell analysiert werden“ ) enthält Links zu einer Erklärung, warum die Anführungszeichen in der Windows-Befehlszeile so schwierig sind. Das Entfernen der Leerzeichen in einem Pfadnamen ist eine gute Wahl.