J'ai eu un certain succès avec l'intégration Python dans le passé, mais après une récente réinstallation, j'ai d'énormes problèmes pour le faire fonctionner.
Configuration:
- Je suis dessus JMP Pro 15.2 et Python 3.6.
- Juste pour m'assurer que l'installation de python est propre, je l'ai désinstallée et réinstallée. Aucun module autre que ceux nécessaires n'est installé:
- numpy, scipy, pandas, matplotlib, pyqt5 et leurs dépendances:
>> py -3.6 -m pip freeze
cycler==0.10.0
kiwisolver==1.3.1
matplotlib==3.3.4
numpy==1.19.5
pandas==1.1.5
Pillow==8.2.0
pyparsing==2.4.7
PyQt5==5.15.4
PyQt5-Qt5==5.15.2
PyQt5-sip==12.9.0
python-dateutil==2.8.1
pytz==2021.1
scipy==1.5.4
six==1.16.0
Python Init();
Python Submit( "import sys" );
Python Submit( "print(sys.version)" );
Python Term();
3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)]
0
Avec cette configuration, je peux exécuter:
Python Init();
x = 5;
Python Send( x );
Python Submit( "print(x)" );
Python Submit(
"\[
basket = ['apple', 'orange', 'pear']
print(basket)
]\"
);
Python Term();
Comme prévu, je vois 5,0 dans le journal et un 0 pour Python Term ():
5.0
<BR />['apple', 'orange', 'pear']<BR />
0
Maintenant, si je pousse autre chose qu'un simple nombre, une chaîne ou une liste, j'obtiens une erreur:
Python Init();
x = [5];
Python Send( x );
Python Submit( "print(x)" );
Python Term();
Cela entraîne l'erreur suivante:
Python data type is not supported.
Presque aucun des exemples d'index de script ne fonctionne. Par example:
Names Default To Here( 1 );
Python Init();
a = "abcdef";
d = 3.141;
v = [9 8 7, 6 5 4, 3 2 1];
m = [1 2 3, 4 5 6, 7 8 9];
ml = Python Execute(
{v, m, a, d},
{x, z, a, d},
"\[
import numpy as np
a = np.multiply(v, m) # matrix product
d = np.divide(v, m) # matrix division
z = np.multiply(m, np.linalg.inv(v)) # m * inv(v) called Left division
x = np.multiply(np.linalg.inv(m), v) # inv(m) * v called right division
]\"
);
Show( v, m, ml, x, z, a, d );
Python Term();
Python data type is not supported.
Y a-t-il quelque chose qui me manque? JMP semble trouver et envoyer des données à Python très bien, il n'est donc pas difficile de trouver l'installation de Python, mais pour une raison quelconque, tout ce qui est plus qu'une simple primitive python ne fonctionne pas.
Mettre à jour:
Je pense que le problème est isolé sur Envoyer Python ou alors Exécuter Python car JMP essaie d'envoyer les données à python. Créer les données en python et les intégrer dans JMP fonctionne.
Python Init();
Python Submit("\[
df = _JMPpd.DataFrame({"Col1": [1, 2, 3],
"Col2": [4, 5, 6]})
print(df)
x = _JMPnp.array([1,2,3])
print(x)
]\");
dt = Python Get(df);
Show(dt);
dt << New Data View;
x = Python Get(x);
Show(x);
Python Term();
Et cela fonctionne très bien:
Col1 Col2
0 1 4
1 2 5
2 3 6
[1 2 3]
dt = DataTable("df");
x = [1 2 3];
0
Essayez de mettre à jour vers JMP 15.2.1 car il pourrait avoir une solution à ce problème:
L'utilisation de Python Send () pour envoyer des tables de données à JMP ne génère plus d'erreur de type de données non prise en charge.