私は過去にPython統合である程度の成功を収めましたが、最近再インストールした後、それを機能させるのに大きな問題があります。
構成:
- 私は〜に乗っていますJMPプロ15.2およびPython3.6。
- Pythonのインストールがクリーンであることを確認するために、Pythonをアンインストールして再インストールしました。 必要なモジュール以外のモジュールはインストールされていません。
- numpy、scipy、pandas、matplotlib、pyqt5およびそれらの依存関係:
>> 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
この設定で私は実行することができます:
Python Init();
x = 5;
Python Send( x );
Python Submit( "print(x)" );
Python Submit(
"\[
basket = ['apple', 'orange', 'pear']
print(basket)
]\"
);
Python Term();
さすがに5.0ログと0 Python Term()の場合:
5.0
<BR />['apple', 'orange', 'pear']<BR />
0
ここで、単純な数値、文字列、またはリスト以外のものをプッシュすると、エラーが発生します。
Python Init();
x = [5];
Python Send( x );
Python Submit( "print(x)" );
Python Term();
これにより、次のエラーが発生します。
Python data type is not supported.
ScriptingIndexの例はほとんど機能しません。 例えば:
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.
足りないものはありますか? JMPはデータを見つけてPythonに送信しているように見えるので、Pythonのインストールを見つけるのは難しくありませんが、何らかの理由で、単純なpythonプリミティブ以上のものは機能しません。
更新:
問題は孤立していると思いますPython送信またはPython実行JMPがデータをPythonに送信しようとしているため。 Pythonでデータを作成し、それをJMPに取り込むことは機能します。
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();
そしてそれはうまく機能します:
Col1 Col2
0 1 4
1 2 5
2 3 6
[1 2 3]
dt = DataTable("df");
x = [1 2 3];
0
その問題が修正されている可能性があるため、JMP15.2.1に更新してみてください。
Python Send()を使用してデータテーブルをJMPに送信しても、サポートされていないデータ型エラーが生成されなくなりました。