No existe ningún módulo llamado 'pandas'.Estoy ejecutando un script JSL en JMP 18 que utiliza Python. En macOS funciona correctamente, pero en Windows obtengo este error:
Traceback (most recent call last):
File "
", line 7, in
ModuleNotFoundError: No module named 'pandas'
In the embedded log is see following:
Creating: C:\\Users\\Admin\\AppData\\Roaming\\JMP\\JMP\\Python\\Python311\\site-packages
This tells me that JMP 18 doesn't install python automatically. Is there a pre-requisite for python be installed?
I am also trying to install this way to ensure the script doesn't fail irrespective of the system:
Python Submit("
import jmputils
required_packages = ['pandas', 'numpy']
# get list of installed python packages
installed = jmputils.jpip('list')
# check & install missing packages
for pkg in required_packages:
if pkg.lower() not in [p.lower() for p in installed]:
print(f'{pkg} not installed — installing...')
jmputils.jpip('install', pkg)
else:
print(f'{pkg} is already installed.')
jmputils.jpip('list')
");
Automatización y scriptingRe: No se encuentra el módulo 'pandas'Que yo sepa, en JMP18 esa carpeta se añade cuando se ejecuta Python por primera vez y probablemente se pueda forzar ejecutando algo como
Python Submit("import jmp");
en el editor de scripts de JMP
Re: No se encuentra el módulo 'pandas'Un mensaje de error de Python es una clara señal de que Python está instalado ; )
Para instalar paquetes de Python desde JSL, utilice:
Python Install Packages( "numpy pandas" );

Re: No se encuentra el módulo 'pandas'Gracias, sí, creó el directorio de Python y algunos paquetes. A continuación:
Python Submit("
import jmputils
required = ['pandas', 'numpy']
# Get installed packages safely
installed = jmputils.jpip('list')
if installed is None:
installed = []
print('Installed packages:', installed)
# Install missing ones
for pkg in required:
if pkg.lower() not in [p.lower() for p in installed]:
print(f'{pkg} not installed — installing...')
jmputils.jpip('install', pkg)
else:
print(f'{pkg} already installed.')
import pandas as pd
import numpy as np
print('pandas and numpy imported successfully!')
");
Re: No se encuentra el módulo 'pandas'Sí, eso me ayudó a asegurarme de que se añadiera la carpeta. Gracias.
Re: No se encuentra el módulo 'pandas'Utilizar esa importación es una de las comprobaciones que usamos en nuestras aplicaciones JMP-Python para asegurarnos de que todo se ha configurado correctamente.
Sigo sin usar JMP19 por varias razones, pero facilitará la integración de JMP con Python. Si no recuerdo mal, en JMP19 será innecesario, pero no lo he comprobado. JMP19 también facilitará verificar si los paquetes se han instalado, ya que jmputils incorpora el método `is_installed`.
Re: No hay ningún módulo llamado 'pandas'En JMP 18, el script jsite.py realizaba la descompresión del archivo site-packages.zip y la creación del directorio. JMP 19 realiza esto internamente en código C++ la primera vez que se inicia Python. El script jsite.py aún existe como respaldo para cuando se generan los scripts de línea de comandos jpip.bat o de shell jpip mediante Create JPIP CMD() de Python. O su equivalente en Python, jmputils.create_jpip( dest_path ).
JMP 19 mejora la gestión de paquetes con scripts añadiendo jmputils.is_installed( 'package_name' ), jmptuils.package_version( 'package_name' ) y pkg_dict = jmputils.packages(). Estas fueron adiciones tardías a la versión 19.0 y están presentes, pero no están documentadas en el índice de scripts. Las actualizaciones posteriores incluyen ejemplos en dicho índice.