Aucun module nommé 'pandas'J'exécute un script JSL dans JMP 18 qui utilise Python. Sous macOS, tout fonctionne correctement, mais sous Windows, j'obtiens l'erreur suivante :
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')
");
Automatisation et scriptageRe: Aucun module nommé 'pandas'À ma connaissance, dans JMP18, ce dossier est ajouté lors du premier lancement de Python et vous pouvez probablement forcer son ajout en exécutant une commande du type :
Python Submit("import jmp");
dans l'éditeur de scripts JMP
Re: Aucun module nommé 'pandas'Un message d'erreur de Python est un signe clair que Python est installé ; )
Pour installer des packages Python à partir de JSL, veuillez utiliser :
Python Install Packages( "numpy pandas" );

Re: Aucun module nommé 'pandas'Merci, oui, cela a créé le répertoire Python et quelques paquets. Ci-dessous :
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: Aucun module nommé 'pandas'Oui, cela m'a permis de m'assurer que le dossier soit ajouté. Merci.
Re: Aucun module nommé 'pandas'L'utilisation de cette importation est l'une des vérifications que nous effectuons dans nos applications JMP-Python pour nous assurer que tout a été correctement configuré.
Je reste réticent à utiliser JMP19 pour plusieurs raisons, mais cela simplifiera l'intégration JMP-Python. Si je me souviens bien, cette fonctionnalité sera inutile dans JMP19, mais je n'ai pas vérifié. JMP19 facilitera également la vérification de l'installation des paquets grâce à la méthode « is_installed » de jmputils.
Re: Aucun module nommé 'pandas'Dans JMP 18, le décompactage du fichier site-packages.zip et la création du répertoire étaient effectués par le script jsite.py. JMP 19 effectue ces opérations en interne, en C++, lors du premier lancement de Python. Le script jsite.py est toujours présent comme solution de secours lorsque les scripts en ligne de commande jpip.bat ou jpip shell sont générés par la fonction Python Create JPIP CMD(), ou son équivalent Python jmputils.create_jpip(dest_path).
JMP 19 améliore la gestion des paquets par script en ajoutant `jmputils.is_installed('nom_du_paquet')`, `jmputils.package_version('nom_du_paquet')` et `pkg_dict = jmputils.packages()`. Ces fonctions ont été ajoutées tardivement à la version 19.0 ; elles sont présentes, mais ne sont pas documentées dans l'index des scripts. Les mises à jour ultérieures contiennent des exemples dans cet index.