2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ネイティブpythonの拡張ノードでつかうpyhtonパッケージを導入する

Last updated at Posted at 2024-04-15

パッケージ導入

ネイティブpythonの拡張ノードでつかうpythonパッケージを導入します。
Modeler 18.5のmodelerpyのパッケージにはinstallPackageというメソッドあります。

modelerpy.installPackage('scikit-learn')

しかしながら、デフォルト状態だとこのメソッドは失敗します。

ModelerをWindowsに導入するとデフォルトでは"C:\Program Files\IBM\SPSS\Modeler\18.5"に導入されます。ネイティブpythonのpythonもやはりその配下に導入されます。一方でWindowsは、"C:¥Program Files"は一般ユーザーからの書き込みを制限しています。そのため、パッケージ導入のAPIのmodelerpy.installPackageを実行すると以下のような権限不足で失敗するのです。

image.png
image.png

ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied: 'C:\\Program Files\\IBM\\SPSS\\Modeler\\18.5\\python_venv\\Lib\\site-packages\\threadpoolctl.py'
Check the permissions.

これを避けるためには以下の方法が考えられます。

1.Administoratorの権限でpipで導入する
2.パッケージ導入フォルダの権限を変更する。

  • テスト環境
    • Modeler 18.5
    • Windows 11 64bit

1.Administoratorの権限でpipで導入する

コマンドプロンプトを「管理者として実行」します。
image.png

以下のpipコマンドで導入します。

"C:\Program Files\IBM\SPSS\Modeler\18.5\python_venv\Scripts\python.exe" -m pip install scikit-learn

以下のように導入できます。
image.png

2.パッケージ導入フォルダの権限を変更する。

標準導入パスの場合、パッケージは「C:\Program Files\IBM\SPSS\Modeler\18.5\python_venv\」に導入されますので、ここにユーザーレベルでの「変更」と「書き込み」の権限を付けます。
フォルダを選び、右クリックで「プロパティ」を開きます。
image.png

「セキュリティ」タブでアクセス許可を「編集」します。
image.png

「Users」グループを選び、「変更」と「書き込み」にチェックを付けます。
image.png

「Users」グループに、「変更」と「書き込み」にチェックがつきました。
image.png

これでmodelerpy.installPackageが実行できます。
image.png

# ネイティブ Python APIのパッケージ
import modelerpy

#scikit-learnパッケージをPypiから導入
modelerpy.installPackage('scikit-learn')

以下のように導入できました。
image.png

おまけ

Python for sparkではユーザーが後から自分で導入したPython環境を利用することができましたが、ネイティブPythonではModeler導入ディレクトリの配下のPythonを使います。そのためにWindowsではこのような制限が発生しています。また、パッケージ導入はコンフリクトを起こしかねないのでクリーンな環境を使いたいこともあります。
そのため、別に導入した環境を使えるようにするという製品改善要望を上げています。ご賛同をいただける方はVoteしていただけると実現されるかもしれません。

参考

SPSS Modeler18.5の新機能の ネイティブ Python API #SPSS - Qiita

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?