Tutorial para desarrolladores: Nuevas capacidades de secuencias de comandos e integración de Python en JMP 18Este video incluye preguntas y respuestas de los asistentes que asistieron al seminario web en vivo el 21 de marzo de 2024. a las 25:36-50:39 y 01:00:21 A continuación se proporciona un resumen de algunas de las preguntas y respuestas. Para obtener una respuesta completa, considere revisar las preguntas y respuestas del video.
Automatización y secuencias de comandosRe: Tutorial para desarrolladores: Nuevas capacidades de integración y secuencias de comandos de Python en JMP 18Quiero aclarar la respuesta a la pregunta:
P: ¿Esto significa que JMP no puede usar otras versiones de Python?
JMP 18 solo utilizará el Python 3.11 integrado instalado. Los parámetros Python Init() y Python Connect() para seleccionar una instalación de Python han quedado obsoletos y los parámetros se han ignorado.
Python de JMP 18 es un entorno aislado, por lo que no entrará ( no debería) entrar en conflicto con otras instalaciones de Python en su sistema. No hay nada que le impida utilizar su canal de Python existente. Puede utilizar Python de JMP para obtener datos hacia y desde JMP para transferirlos a su canalización existente.
Re: Tutorial para desarrolladores: Nuevas capacidades de integración y secuencias de comandos de Python en JMP 18
@gail_massari escribió:
P: Si quiero acceder a una tabla de datos JMP desde jupyter notebook en un entorno Python diferente, ¿seguiría funcionando la instrucción 'importar' JMP'?
R: No.
¿Qué tal el "mismo entorno Python"? ¿Es posible vincular IDE de Python como Spyder o Visual Studio Code Editors a la instalación de JMP Python?
Tener toda la funcionalidad de programación Python de los IDE + la posibilidad de
import 'JMP'
Re: Tutorial para desarrolladores: Nuevas capacidades de integración y secuencias de comandos de Python en JMP 18La declaración import jmp solo funcionará desde el propio JMP.
No se implementa como una biblioteca compartida o un script de Python; el puente entre Python y la funcionalidad JMP es el código C++ interno del ejecutable JMP.
Re: Tutorial para desarrolladores: Nuevas capacidades de integración y secuencias de comandos de Python en JMP 18Al enviar tablas con imágenes a Python, ¿es posible acceder a las imágenes desde Python?
Re: Tutorial para desarrolladores: Nuevas capacidades de integración y secuencias de comandos de Python en JMP 18# getColImage.py
#
# Description:
# Get a picture from an image column using Python
# JMP 18 only supports numeric and character column types for transfer
# but the value can be grabbed via JSL, and passed to Python as a string
# in the meantime. The Python code will need to trim off the
# New Image( Char To Blob()) and decode the image back to binary.
import jmp
dt = jmp.open(jmp.SAMPLE_DATA + 'Big Class Families.jmp')
jmp.run_jsl('''
Names Default to Here(1);
dt = Current Data Table();
img = dt:picture[1]; // get the picture
img_str = char(img); // make it a string
Python Send(img_str); // send Python the string
''')
# print the object's JSL representation
# which is text encoding of the binary, a description of the
# encoding and image format type.
print(img_str)
Con salida:
Nueva imagen (Char To Blob ("1iVBORw0KGgoAAAANSUhEUgAAAEYAAAABGCAYAAABxLuK...
VORK5CYII=", "base64comprimido" ), "png")
Desde el lado de Python, necesita analizar la cadena Blob, el método de compresión y el formato, y decodificar la imagen de texto a binario.
Sin embargo, una forma alternativa y probablemente mejor es utilizar << Get Pixels("rgba"); en la columna para obtener una lista de matrices de 4 elementos que se admite a través de Python Send().
getColImage.py actualizado
# getColImage.py
#
# Description:
# Get a picture from an image column using Python
# JMP 18 only supports numeric and character column types for transfer
# but the value can be grabbed via JSL, and passed to Python as a string
# in the meantime. The Python code will need to trim off the
# New Image( Char To Blob()) and decode the image back to binary.
#
# Alternatively use << Get Pixels("rgba"); to get a list of matricies
# which is passable from JSL to Python using Python Send();
#
import jmp
dt = jmp.open(jmp.SAMPLE_DATA + 'Big Class Families.jmp')
jmp.run_jsl('''
Names Default to Here(1);
dt = Current Data Table();
img = dt:picture[1]; // get the picture
img_str = char(img); // make it a string
Python Send(img_str); // send Python the string
asRGBA = { r, g, b, a} = dt:picture[1] << Get Pixels("rgba");
Python Send(asRGBA);
''')
# print the object's JSL representation
# which is text encoding of the binary, a description of the
# encoding and image format type.
print(img_str)
print(asRGBA)
Re: Tutorial para desarrolladores: Nuevas capacidades de integración y secuencias de comandos de Python en JMP 18En algún lugar se recortaron las primeras líneas de la publicación.
No, no es directamente posible utilizar la integración de Python en JMP 18, pero es posible solucionarlo utilizando JSL.
La atención se centró en JMP 18 en columnas numéricas y de caracteres. El soporte total de la tabla de datos es un desarrollo continuo y actual.