「pandas」という名前のモジュールがありませんJMP 18でPythonを使ったJSLスクリプトを実行しています。macOSでは問題なく動作しますが、Windowsでは以下のエラーが発生します。
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')
");
自動化とスクリプトRe: 「pandas」という名前のモジュールがありません私の知る限り、JMP18ではPythonを初めて実行したときにそのフォルダが追加され、次のようなものを実行することで強制的に追加できるはずです。
Python Submit("import jmp");
JMPスクリプトエディタ
Re: 「pandas」という名前のモジュールがありませんPython からのエラー メッセージは、Python がインストールされていることを示す明確なサインです。
JSL から Python パッケージをインストールするには、以下を使用してください。
Python Install Packages( "numpy pandas" );

Re: 「pandas」という名前のモジュールがありませんありがとうございます。はい、python ディレクトリといくつかのパッケージが作成されました。以下をご覧ください。
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: 「pandas」という名前のモジュールがありませんはい、フォルダが追加されていることを確認できました。ありがとうございます。
Re: 「pandas」という名前のモジュールがありませんこのインポートの使用は、JMP-Python アプリケーションですべてがセットアップされていることを確認するために使用するチェックの 1 つです。
色々な理由からJMP19の使用はまだ控えていますが、JMP-Python統合が使いやすくなるはずです。JMP19では不要になるはずですが、まだ確認できていません。また、jmputilsが「is_installed」メソッドを取得するようになるため、パッケージがインストールされているかどうかの確認も容易になります。
Re: 「pandas」という名前のモジュールがありませんJMP 18では、site-packages.zipファイルの解凍とディレクトリの作成はjsite.pyスクリプトによって行われていました。JMP 19では、Pythonの初回起動時にC++コード内で内部的に実行されます。jsite.pyスクリプトは、PythonのCreate JPIP CMD()によってコマンドラインのjpip.batまたはjpipシェルスクリプトが生成される際のバックアップとして引き続き存在します。または、Pythonの同等のjmputils.create_jpip( dest_path )です。
JMP 19では、jmputils.is_installed( 'package_name' )、jmptuils.package_version( 'package_name' )、pkg_dict = jmputils.packages()を追加することで、スクリプトによるパッケージ管理が改善されました。これらは19.0で後から追加されたもので、現在も存在していますが、スクリプトインデックスには記載されていません。その後のアップデートでは、スクリプトインデックスにサンプルが掲載されています。