Lancer du code Python à partir d'un script JSL sur un serveurBonjour à tous,
Dans un serveur (sans connexion internet), j'ai un script JSL qui appelle à un moment donné un script python (dans un environnement virtuel). Ci-dessous se trouve la commande JSL qui appelle le python. Le python est stocké dans un disque F:\.
strCommand = “Path\to\virutual_env\.venv\Scripts\activate.bat\!” && python \!“Path\to\python_script.py\!””;
Run Program( Executable( “cmd.exe” ), Options( “/C ” || strCommand ) );
- Si j'exécute la même commande directement dans l'invite de commande du serveur (en mode administrateur ou non) : « Path\to\virutual_env\.venv\Scripts\activate.bat » && python « Path\to\python_script.py\ », cela fonctionne
- Si j'exécute ce code JSL sur mon PC, cela fonctionne également.
Cependant, si j'exécute ce code JSL sur le serveur, il ne fonctionne plus. Aucun python n'est exécuté, mais aucun message d'erreur.
Pour information : comme je n'ai pas accès à Internet, pour l'environnement virtuel python j'ai transféré manuellement les packages sur le serveur et activé l'environnement pour lire les packages.
Quelqu'un a eu le même problème ?
Automatisation et scriptsRe: Lancer du code Python à partir d'un script JSL sur un serveurAvez-vous les mêmes chemins sur votre PC et sur le serveur ? L'un d'eux contient-il des espaces dans les chemins (il pourrait potentiellement y avoir des problèmes avec les guillemets lors de l'utilisation de Run Program) ? Commencez à décomposer le problème en parties plus petites :
- Pouvez-vous accéder correctement au chemin ?
- Pouvez-vous exécuter Python ?
- Pouvez-vous activer venv ?
- Et ainsi de suite
Re: Lancer du code Python à partir d'un script JSL sur un serveurBonjour,
Merci beaucoup ! En fait, le problème était qu'il y avait un espace dans le chemin
Re: Lancer du code Python à partir d'un script JSL sur un serveurComment avez-vous résolu ce problème ? Avez-vous « corrigé » le chemin du fichier ou essayé de déterminer comment il doit être cité pour que JMP/la ligne de commande comprenne ce que vous essayez de faire ?
Re: Lancer du code Python à partir d'un script JSL sur un serveurComme j'ai dû faire un correctif rapide, j'ai d'abord supprimé les espaces dans le chemin. Je dois avouer que je ne suis pas revenu sur le sujet par la suite... mais je suis en discussion avec le support JMP. Ils suggèrent d'utiliser Python depuis JMP18, mais ils ne supportent pas les environnements virtuels, il faudrait donc installer les versions de paquets directement depuis eux. Et j'ai des clients qui n'utilisent 'que' JMP 17 pour le moment et qui souhaiteraient la même chose. Je vous tiendrai au courant
Re: Lancer du code Python à partir d'un script JSL sur un serveurL'application Pass quote into Run Program propose une option. J'ai utilisé quelque chose de similaire lorsque j'ai dû passer des guillemets à Run Program et, si je me souviens bien, également d'autres méthodes.
Re: Lancer du code Python à partir d'un script JSL sur un serveurhttps://community.jmp.com/t5/Discussions/Unable-to-parse-speechmarks-quot-quot-into-powershell-using/mp/245968/highlight/true#M48328 (dans Impossible d'analyser les marques vocales "" dans PowerShell à l'aide de RunProgram ) contient des liens vers une explication de la raison pour laquelle la citation de la ligne de commande Windows est si difficile. Supprimer les espaces dans un nom de chemin est un excellent choix.