お知らせ
· 2024年9月16日

第2回 開発者コミュニティ・ミートアップ Python ワークショップの事前準備について

※ 本内容は随時更新予定です。ワークショップに必要な内容をご覧いただき、参加のご検討などしていただければ幸いです。

Pythonワークショップにご参加いただく場合は、事前に以下の環境をご用意ください。

  • IRIS 2024.1.1 for Windows Community Edition (※ これからダウンロードされる方は、バージョンが異なりますので下記コメントをご確認ください)
    • キットダウンロードはこちらの記事をご覧ください。
    • インストールオプションはデフォルト (インストールタイプ: 開発、初期セキュリティ設定: 最小)
  • Visual Studio Code (任意のバージョン) と ObjectScript用エクステンション
    • エクステンションのインストール方法はこちらの記事をご覧ください。
  • 以下のPythonライブラリを irispip (<IRISインストールディレクトリ\bin\irispip.exe) でインストール
    • flask, nicegui, sqlalchemy-iris,  scikit-learn,  numpy, pandas
ディスカッション (8)2
続けるにはログインするか新規登録を行ってください

既に製品版のIRIS for Health 2024.1.1を開発ライセンスでインストール済で、

初期セキュリティ設定は「通常」で設定されておりますが、どこか構成を変更したほうがよいでしょうか。

現在、入手可能なCommunity Editionのバージョンが2024.2に変更されています。
このバージョンを使用される場合は、別途Pythonのインストールが必要です。
こちらの Windows installer (64-bit) からダウンロードしてインストールしてください。
(直接ダウンロードリンクこちら x86-64 / arm64 )
※ Pythonの最新バージョン 3.13 は IRIS が未対応のため、ご使用いただけません。

インストール時に Add pytnon.exe to PATH にチェックを入れます。

Pythonインストール後、IRISの管理ポータルでインストールしたPythonの情報を設定します。


各種モジュールのインストールは、irispip ではなく、Python付属の pip3 を使用します。
例:
pip3 install flask

確認のお知らせメールが届いたので内容を確認したところ、GitHubのリンクが貼られておりました。

こちらの案内にございます、(3) pythonライブラリのimport確認における

from flask import Flask,render_template
from sqlalchemy import create_engine
from nicegui import ui

を一行ずつ実行したところ、以下のようなエラーが出力されましたが、どのように対処すればよろしいでしょうか。(2024.1環境です)

Python 3.12.3 (tags/v3.12.3:f6650f9, Apr  9 2024, 14:05:25) [MSC v.1938 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from flask import Flask,render_template
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'flask'
>>> from sqlalchemy import create_engine
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'sqlalchemy'
>>> from nicegui import ui
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'nicegui'

@Yusuke Kojima さん、事前のご確認ありがとうございます。

エラーの内容から、確認で指定されているpythonライブラリがインストールされていないように思えます。

2024.1をご利用ですので、IRISインストールディレクトリ\bin\irispip.exe を使ってライブラリのインストールを行ってみていただけますか?

以下、c:\intersystems\iris にIRISがインストールされている状況で、コマンドプロンプトを開きirispip.exeを使ってPythonライブラリをインストールした例です。

cd c:\intersystems\iris\bin

irispip install flask
irispip install nicegui
irispip install scikit-learn
irispip install numpy
irispip install pandas

 (irispip install pythonライブラリ名 でインストールします。指定のライブラリはワークショップ事前準備内容に含めているPythonライブラリです)

上記インストール後、再度「(3) pythonライブラリのimport確認」をお試しいただけますでしょうか。

よろしくお願いします!

@Mihoko Iijima さん、ご返信ありがとうございます。

ライブラリは既にインストール済でしたが、インストールコマンドが異なっていたためご連絡いただいたコマンドを実行しました。(元々実行していたコマンドは、以下の通りドキュメントを参考にしていました)

.\irispip install --target C:\InterSystems\IRISHealth\mgr\python flask

結果、同様の現象が出てしまっております。

irispip list した結果です。

 
Spoiler

irispip check でも「No broken requirements found.」と表示されており、依存関係の問題はなさそうです。

調べた結果、パスを通す必要があるのかと思い、関係ありそうなパスを設定して再起動なども試しましたが、それでもダメでした。なにか他に思い当たる問題はありますでしょうか。

■環境変数に登録したパス

  • <installDir>\mgr\python
  • <installDir>\lib\python
  • <installDir>\lib\python\Scripts
  • <installDir>\bin

@Yusuke Kojima さん、ご確認ありがとうございます。

最初に貼っていただいたpython実行環境のバージョンを見落としておりました。

ご確認時起動された pythonの環境は、おそらくIRISインストール時に用意しているPythonではなく、既にWindowsにインストールされていたPythonのように見えます。

Python 3.12.3 (tags/v3.12.3:f6650f9, Apr 9 2024, 14:05:25) [MSC v.1938 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. 

ワークショップ事前確認に含めておりましたimportの確認に使うpythonですが、IRIS2024.1のインストールと同時にインストールされるPythonを使う前提での確認方法となります。(このpythonはIRISインストールディレクトリ\lib\python にインストールされます)

Python3.12.3 のpython.exeが存在するディレクトリを環境変数PATHに設定している場合、pythonと実行すると3.12.3を使ってしまうかと思いますので、コマンドプロンプト、またはPowershellを開き、一旦 IRISインストールディレクトリ\lib\python に移動してから .\python.exe を実行し、importの確認を行ってみてください。

以下、IRISインストールディレクトリが、c:\intersystems\IRIS である場合の実行例です。 

C:\Users\Administrator>cd c:\InterSystems\IRIS\lib\python

c:\InterSystems\IRIS\lib\python>.\python.exe
Python 3.9.19 (main, Oct  3 2024, 15:08:04) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from flask import Flask,render_template
>>>

どうぞよろしくお願いします。