JMP 14 用に Python を設定するにはどうすればよいですか?私は Python の初心者なので、簡単な質問だと思います。Python バージョン 3.6 と 3.7 がインストールされています。両方のバージョンに numpy、matplotlib、scipy、pdfkit をインストールしました。ただし、スクリプト インデックスからサンプルを実行しようとすると、ログ ウィンドウにエラーが表示されます。
Python Get の例の場合:
Names Default To Here( 1 );
Python Init();
x1 = [1, 2, 3];
Python Send( x1 );
x2 = Python Get( x1 );
Show( x1, x2 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
Python Send( dt1 );
dt2 = Python Get( dt1 );
dt2 << New Data View;
Close( dt1 );
Python Term();
次のエラーが表示されます。
//:*/
Names Default To Here( 1 );
Python Init();
x1 = [1, 2, 3];
Python Send( x1 );
x2 = Python Get( x1 );
Show( x1, x2 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
Python Send( dt1 );
dt2 = Python Get( dt1 );
dt2 << New Data View;
Close( dt1 );
Python Term();
/*:
/**********/
# Read a binary file containing doubles into an ndarray
x1 = _JMPnp.fromfile("C:\\Users\\pmroz\\AppData\\Local\\Temp\\eacac6a7-dd5e-4ceb-dcbd0248455fb787.csv", dtype=_JMPnp.float64, count=-1, sep="")
/**********/
Traceback (most recent call last):
File "<string>", line 2, in <module>
NameError: name '_JMPnp' is not defined
x1 = [1, 2, 3];
x2 = .;
/**********/
# Import a JMP exported .csv file into a Data Frame
dt1 = _JMPpd.read_csv("C:\\Users\\pmroz\\AppData\\Local\\Temp\\8b6475be-aaf0-408b-d1cae4522f253881.csv")
/**********/
Traceback (most recent call last):
File "<string>", line 2, in <module>
NameError: name '_JMPpd' is not defined
Send Expects Scriptable Object in access or evaluation of 'Send' , dt2 << /*###*/New Data View/*###*/
In the following script, error marked by /*###*/
Names Default To Here( 1 );
Python Init();
x1 = [1, 2, 3];
Python Send( x1 );
x2 = Python Get( x1 );
Show( x1, x2 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
Python Send( dt1 );
dt2 = Python Get( dt1 );
dt2 << /*###*/New Data View/*###*/;
Close( dt1 );
Python Term();
私には何が欠けているのでしょうか?ありがとう。
Re: JMP 14 用に Python を設定するにはどうすればよいですか?ここでは、JMP と Python を使用するためにいくつかの処理が行われています。
1. JMP には、JSL 用のスクリプト言語とログがあります。
* JSL で値を確認し、値を評価してログで確認したり、値をデータ テーブルに作成または配置したり、データベースに配置したり、グラフィック出力を自分で描画したりすることもできます。
* 値をファイルに書き込むことができます。
2. Python は独自の環境であり、上記の a と b は Python にも当てはまりますが、Python ステートメントとプログラムを使用します。 JSL の show が JSL 値を表示するのと同じように、Python の print() ステートメントは Python 変数を出力します。
スクリプトガイドの Python Send() の例
Names Default To Here( 1 );
Python Init();
x = [1, 2, 3];
Python Send( x );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Python Send( dt );
Close( dt );
Python Submit( "print(x)" );
Python Submit( "print(dt)" );
Python Term();
Python Submit (“print(x)”); // Python コード (“print(x)”) を実行し、Python で認識される x の値を出力します。これは JSL x とは別の変数です。 Python Send(x) までは、Python 側には変数 x はなく、JSL x だけが存在します。
たとえば、上記のコードが次のような場合
Names Default To Here( 1 );
Python Init();
x = [1, 2, 3];
Python Send( x );
x = [3,2,1];
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Python Send( dt );
Close( dt );
Python Submit( "print(x)" );
Python Submit( "print(dt)" );
Python Term();
Show( x );
Python Submit(“print(x)”) から x が 1、2、3 であることを取得します。
しかし、ショー (x) からは;
2 つの異なるスクリプト環境で操作していることを覚えておくと、3、2、1 が得られます。
Python を使わずに JSL の機能を調べることに慣れておくことをお勧めします。JSL のサンプルや JSL の操作を理解するための資料がたくさんあります。 そして、JMP 以外の Python でのプログラミングを探索すると、チュートリアル サイトを含め、インターネット上に数え切れないほど多くの例が見つかります。 それぞれの言語に精通していれば、それぞれの言語の長所と短所を理解できるようになります。 どこでどの計算を行うかを決める必要があるからです。 初期データのみを渡して結果を返すなど、すべてを Python で行うことも、JSL でほとんどすべてを行うこともでき、Python を呼び出して、JSL よりも Python で実行する方が簡単な計算や処理、またはその中間の処理を実行することもできます。
ポール
Re: JMP 14 用に Python を設定するにはどうすればよいですか?こんにちは、ポールさん
実際、JSL ファイルから Python で Python に wubmit したものはどのようにして表示されるのでしょうか? 私はこれを行った経験はありませんが、例として x1 を送信し、Python スクリプト ウィンドウに移動すると、x1 は保存されません。 これに関するステップバイステップのドキュメントはありますか?
Re: JMP 14 用に Python を設定するにはどうすればよいですか?こんにちは、私も CETPA INFOTECH で Python を学び始めました。 私はまだあまり知識がありませんが、私が知っていること、使用していることはすべてここで共有します。
リンクをクリックして、Unix/Linux で利用可能な圧縮されたソース コードをダウンロードします。
ファイルをダウンロードして解凍します。
一部のオプションをカスタマイズする場合は、モジュール/セットアップ ファイルを編集します。
./configure スクリプトを実行します。
作る。
インストールを行います。
ポールの回答を読んだ後、私は簡単に理解し、彼の解決策に同意します。Re: JMP 14 用に Python を設定するにはどうすればよいですか?こんにちは、ポールさん
すでに動作するようになりました(少なくとも1台のPCでは、numpyをインポートしようとするとエラーが発生します)。 このトピックに取り組むときに、さまざまな Conda 環境を簡単に選択できるように設定できることを提案したかったのです。
データ テーブルのパンダへの転送に関する問題は既知の問題ですか、それとも何か間違っているのでしょうか?
ありがとう
ゲルト
Re: JMP 14 用に Python を設定するにはどうすればよいですか?conda インストールを指すように、Python Init() やシステム環境変数を設定する必要があります。 このコミュニティへの投稿に対する以前の回答をご覧ください。 Python Init() 内でパラメータを設定する例と、Python インストールを指すように環境変数を設定する例があります。
Re: JMP 14 用に Python を設定するにはどうすればよいですか?こんにちは、ポールさん
データテーブルを Python に送信しようとしているだけです。 ただし、すべての列は、実際の列が \t で区切られた 1 つの文字列列になります (図を参照)。 ここで何が問題になっているのかわかりますか? 特別な pandas バージョン (またはエラーが発生するため、特別な matplotlib バージョン) が必要ですか?
Python の構成に関して、使用する conda 環境を選択できると便利です。

よろしく
ゲルト
Re: JMP 14 用に Python を設定するにはどうすればよいですか?こんにちは@ロブ128 、
Python への完全な双方向接続の使用経由Python のローカル インストール。これにより、JMP が Python にデータを送信し、JSL スクリプトから Python コードを実行できるようになります。
Python プログラムからデータと結果を返し、JMP で Python の結果を対話的に探索する機能は、JMP 14 で導入されました。
JMP 13 (プログラムの実行あり) を使用してデモを行ったように、stdin と stdout を使用して外部プログラムを制御できます。
からのコメント@ポールネルソンPython への完全な双方向接続の JMP 14 実装を参照しているのではなく、経由プログラムを実行します。
HTH、
スタン
Re: JMP 14 用に Python を設定するにはどうすればよいですか?Hello world の単なる出力である私の .py はこの jsl で動作するため、私はそう思っています。
dt = current data table();
txt = runprogram(executable("C:\Users\username\AppData\Local\Programs\Python\Python37-32\python.exe"),
options({"C:\Users\username\PycharmProjects\FormationPython\tp1.py"}),
readfunction("text"));
//pythconn<<GET version=""></GET>
そしてログ:
//:*/
dt = current data table();
txt = runprogram(executable("C:\Users\username\AppData\Local\Programs\Python\Python37-32\python.exe"),
options({"C:\Users\username\PycharmProjects\FormationPython\tp1.py"}),
readfunction("text"));
//pythconn<<Get Version;
/*:
"Hello World
"
Re: JMP 14 用に Python を設定するにはどうすればよいですか?Python インターフェースは JMP 14 まで利用できないと思っていました。
Re: JMP 14 用に Python を設定するにはどうすればよいですか?こんにちは、ポールさん
ご尽力いただきありがとうございます。残念ながら、私が所有しているのは JMP バージョン 13.0 です。 また、Anaconda を使用せずに Python バージョン 3.7.1 を使用しています。
必要なライブラリはすべてあります(numpy、scipy、matplotlib、panda...) )。
私はWindows 10を使用しています。「変数名」トリックを実行しました(ちなみに、これはよく説明されています)が、このコードでは苦労しています...
代わりにそれを見てください:
Names Default To Here( 1 );
Python Init(Use Python Version("3.7.1"));
/*Python Submit("\[
import sys
sys.path=['', 'C:\\Users\\username\\AppData\\Local\\Programs\\Python\\Python37-32\\python37.zip',
'C:\\Users\\username\\AppData\\Local\\Programs\\Python\\Python37-32\\DLLs',
'C:\\Users\\username\\AppData\\Local\\Programs\\Python\\Python37-32\\lib',
'C:\\Users\\username\\AppData\\Local\\Programs\\Python\\Python37-32',
'C:\\Users\\username\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages']
import numpy as _JMPnp
import scipy as _JMPsp
import pandas as _JMPpd
import sqlite3 as _JMPsq
]\");
*/
x1 = [1, 2, 3];
Python Send( x1 );
x2 = Python Get( x1 );
Show( x1, x2 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
Python Send( dt1 );
dt2 = Python Get( dt1 );
dt2 << New Data View;
Close( dt1 );
Python Term();
注: Python Init は青色のフォントではありません。
ログ ウィンドウに次の内容が表示されます。
名前が解決されていません: 'Python Init' のアクセスまたは評価における Python Init、Python Init(Use Python Version( "3.7.1" ) ) /*###*/
In the following script, error marked by /*###*/
Names Default To Here( 1 );
Python Init( Use Python Version( "3.7.1" ) ) /*###*/;
x1 = [1, 2, 3];
Python Send( x1 );
x2 = Python Get( x1 );
Show( x1, x2 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
Python Send( dt1 );
dt2 = Python Get( dt1 );
dt2 << New Data View;
Close( dt1 );
Python Term();
読んでくれてありがとう :)
ロビン
Re: JMP 14 用に Python を設定するにはどうすればよいですか?もちろん、投稿後にもっと良い方法を見つけますが、それには環境変数の設定が必要です。JMP 14 は環境変数を探しています。これは前の投稿で説明した sys.path ですが、パスの JSL リストになるように設定する必要があります。Windows 10 では、システム プロパティ、システムの詳細設定、環境変数に移動し、新しい環境変数を作成する必要があります。
Variable Name: Python sys path
Variable Value: {"", "C:\\local\\anaconda3\\python36.zip", "C:\\local\\anaconda3\\DLLs",
"C:\\local\\anaconda3\\lib", "C:\\local\\anaconda3", "C:\\local\\anaconda3\\lib\\site-packages",
"C:\\local\\anaconda3\\lib\\site-packages\\win32",
"C:\\local\\anaconda3\\lib\\site-packages\\win32\\lib",
"C:\\local\\anaconda3\\lib\\site-packages\\Pythonwin"}
これにより、このスクリプトが許可されます
Names Default To Here( 1 );
Python Init(Use Python Version("3.6"));
x1 = [1, 2, 3];
Python Send( x1 );
x2 = Python Get( x1 );
Show( x1, x2 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
Python Send( dt1 );
dt2 = Python Get( dt1 );
dt2 << New Data View;
Close( dt1 );
Python Term();
期待されるものを与えるために
x1 = [1, 2, 3];
x2 = [1, 2, 3];
0

Re: JMP 14 用に Python を設定するにはどうすればよいですか?まず、JMP の Python サポートに関してご迷惑をおかけしていることをお詫びいたします。Python 機能の元の開発者は、JMP 14 の開発サイクルの終わりに退職しました。 未解決の問題を修正するためにコードを調べています。
JMP の Python を見つける機能には問題があります。JMP がそれを自動的に見つけた場合は問題ありません。通常、システム上に Python のバージョンが 1 つしかない場合は問題ありません。失敗した場合、現在の JMP リリースでは問題を回避するのは困難です。 さらに、Windows と Mac では、Python の検索の上手い下手に違いがあります。 Python のインスタンスの場所を指定できるようにするためのコードに、いくつかのバグを発見しました。
Python Init() 内で Python sys path( {"",...} ) を使用すると、JMP for Mac v14.1 以降では機能しますが、JMP 14.0、14.1 for Windows では機能しません。
システム上に複数のバージョンの Python がある場合、Windows JMP はこれを適切に処理できません。 Python Init 内で使用する Python のバージョンを指定する必要があります (Use Python Version("3.6"))。たとえば、3.6 バージョンを選択します。これを指定しても、相互運用性を提供するために JMP がロードしようとするモジュールの検索時にログにエラーが発生する可能性があります。Mac では、Python3 のバージョンが複数ある場合、JMP 14.0 に問題が発生します。 Mac JMP 14.1 では、Python 3 が複数ある場合に救済するのではなく、最新バージョンの Python 3 を使用することでこの問題を修正しています。
Python 3.6 が /Library/Frameworks/Python.framework にインストールされている私の Mac では、Python Init() ステートメントは次のようになります。
Python Init( Path("/Library/Frameworks/Python.framework/Versions/3.6/lib/libpython3.6.dylib"), Python Version("3.6") を使用します。
Path() ステートメントは Mac では機能しますが、Windows では機能しません...
Windows 10 デスクトップの C:\local\anaconda3 ディレクトリに、Python 3.6 を使用して Anaconda をインストールしました。
次のスクリプトは、モジュールが見つからないという警告が表示されますが、実行されます。 モジュールの読み込みの問題を解決するには、init の後に最初に行うことは、sys モジュールをインポートし、sys.path を Python インタープリター内で次の操作を実行した場合に返されるパス値に設定し、それらのモジュールをその中でロードすることです。続行する前に私のスクリプトを確認してください。
Python インタープリターから sys.path を見つけます。
C:\local\anaconda3>.\python.exe
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 10:22:32) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print (sys.path)
['', 'C:\\local\\anaconda3\\python36.zip', 'C:\\local\\anaconda3\\DLLs', 'C:\\local\\anaconda3\\lib', 'C:\\local\\anaconda3', 'C:\\local\\anaconda3\\lib\\site-packages', 'C:\\local\\anaconda3\\lib\\site-packages\\win32', 'C:\\local\\anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\local\\anaconda3\\lib\\site-packages\\Pythonwin']
>>>
私の変更したスクリプト:
Names Default To Here( 1 );
Python Init(Use Python Version("3.6"));
Python Submit("\[
import sys
sys.path=['', 'C:\\local\\anaconda3\\python36.zip', 'C:\\local\\anaconda3\\DLLs', 'C:\\local\\anaconda3\\lib', 'C:\\local\\anaconda3', 'C:\\local\\anaconda3\\lib\\site-packages', 'C:\\local\\anaconda3\\lib\\site-packages\\win32', 'C:\\local\\anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\local\\anaconda3\\lib\\site-packages\\Pythonwin']
import numpy as _JMPnp
import scipy as _JMPsp
import pandas as _JMPpd
import sqlite3 as _JMPsq
]\");
x1 = [1, 2, 3];
Python Send( x1 );
x2 = Python Get( x1 );
Show( x1, x2 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
Python Send( dt1 );
dt2 = Python Get( dt1 );
dt2 << New Data View;
Close( dt1 );
Python Term();
ログに次の出力が記録される
/**********/
# Import the numpy module for array and matrix support
import numpy as _JMPnp
/**********/
Traceback (most recent call last):
File "<string>", line 2, in <module>
ModuleNotFoundError: No module named 'numpy'
/**********/
# Import the scipy module for scientific computing support
import scipy as _JMPsp
/**********/
Traceback (most recent call last):
File "<string>", line 2, in <module>
ModuleNotFoundError: No module named 'scipy'
/**********/
# Import the pandas module for Series/Data Frame support
import pandas as _JMPpd
/**********/
Traceback (most recent call last):
File "<string>", line 2, in <module>
ModuleNotFoundError: No module named 'pandas'
/**********/
# Import the matplotlib module for 2D plotting
import matplotlib as _JMPmpl
/**********/
Traceback (most recent call last):
File "<string>", line 2, in <module>
ModuleNotFoundError: No module named 'matplotlib'
/**********/
# Import the matplotlib.pyplot module for plots
import matplotlib.pyplot as _JMPpp
/**********/
Traceback (most recent call last):
File "<string>", line 2, in <module>
ModuleNotFoundError: No module named 'matplotlib'
/**********/
# Set the matplotlib.pyplot interactive flag to false
_JMPpp.interactive(False)
/**********/
Traceback (most recent call last):
File "<string>", line 2, in <module>
NameError: name '_JMPpp' is not defined
Unable to import the 'numpy' Python module
Unable to import the 'scipy' Python module
Unable to import the 'pandas' Python module
Unable to import the 'matplotlib' Python module
x1 = [1, 2, 3];
x2 = [1, 2, 3];
0
JMP 14.1 および現在の開発に対してテスト済み。
もう一度、JMP 開発を代表して、Python サポートの生の状態についてお詫びします。この重要な機能の修正と改善を継続してまいりますので、しばらくお待ちください。 お願いします問題を報告する新しい機能を見つけて提案します。
ありがとう。
Re: JMP 14 用に Python を設定するにはどうすればよいですか?JMP Pro 14.0 と Anaconda 1.8.7 がインストールされており、そのコードを実行できます。 _JMPxx は、numpy: np、pandas: pd および matplotlib.pyplot: pp を参照します。 pandas が依存関係にある可能性があるようです。
コードの最初の 6 行を初めて実行すると、「'matplotlib.pyplot' Python モジュールをインポートできません」という警告が表示されますが、再実行するとログにエラーは表示されません。