Ejecutar código Python desde un script JSL en un servidorHola a todos,
En un servidor (sin conexión a Internet), tengo un script JSL que llama en algún momento a un script de Python (en un entorno virtual). A continuación se muestra el comando JSL que llama a Python. Python se almacena en un disco 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 ejecuto el mismo comando directamente en el símbolo del sistema del servidor (en modo administrador o no): “Path\to\virtual_env\.venv\Scripts\activate.bat” && python “Path\to\python_script.py\”, funciona
- Si ejecuto este código JSL en mi PC, también funciona.
Sin embargo, si ejecuto este código JSL en el servidor, ya no funciona. No se ejecuta Python, pero no aparece ningún mensaje de error.
Para su información: como no tengo acceso a Internet, para el entorno virtual de Python transferí manualmente los paquetes al servidor y activé el entorno para leer los paquetes.
¿Alguien tuvo el mismo problema?
Automatización y scriptingRe: Ejecutar código Python desde un script JSL en un servidor¿Tiene las mismas rutas en su PC y en el servidor? ¿Alguno de ellos tiene espacios en las rutas (podría haber algunos problemas con las comillas al usar Ejecutar programa)? Comience a dividir el problema en partes más pequeñas:
- ¿Puedes acceder a la ruta correctamente?
- ¿Puedes ejecutar Python?
- ¿Puedes activar venv?
- Etcétera
Re: Ejecutar código Python desde un script JSL en un servidorHola,
Muchas gracias! De hecho el problema era que había un espacio en la ruta
Re: Ejecutar código Python desde un script JSL en un servidor¿Cómo resolvió ese problema? ¿"Reparó" la ruta del archivo o intentó averiguar cómo debería estar entrecomillada para que JMP/la línea de comandos comprenda lo que está intentando hacer?
Re: Ejecutar código Python desde un script JSL en un servidorComo tenía que hacer una solución rápida, primero quité los espacios en la ruta. Debo admitir que no volví a tocar el tema después... pero estoy en conversaciones con el soporte de JMP. Sugieren usar Python desde JMP18, pero no admiten entornos virtuales, por lo que tendría que instalar las versiones de los paquetes directamente desde ellos. Y tengo clientes que "solo" usan JMP 17 en este momento y les gustaría lo mismo. Los mantendré informados
Re: Ejecutar código Python desde un script JSL en un servidorLa opción de pasar citas a la aplicación Ejecutar programa tiene una opción. Usé algo similar cuando tuve que pasar citas a la aplicación Ejecutar programa y, si no recuerdo mal, también otros métodos.
Re: Ejecutar código Python desde un script JSL en un servidorhttps://community.jmp.com/t5/Discussions/Unable-to-parse-speechmarks-quot-quot-into-powershell-using/mp/245968/highlight/true#M48328 (en No se pueden analizar las marcas de voz "" en PowerShell usando RunProgram ) tiene enlaces a una explicación de por qué las comillas en la línea de comandos de Windows son tan difíciles. Quitar los espacios en un nombre de ruta es una excelente opción.