前節でhmPython3へのモジュールのインストール方法を紹介しましたが、
ここでは、「ライブラリによっては、hmPython3では使えない」ということが説明されています。
hmPython3は、その性質上、
1つのプロセス内で、プロセスを終了することなく、
「複数回」実行する必要
があります。
しかも複数回実行する度に、実行状態(環境のスコープ状態)を初期化する必要があります。
最初からPythonに付属しているライブラリについては、原則、この複数回の初期化に対応していますが、
サードパーティ製のライブラリについては、この「複数回の初期化」に対応していないものがあります。
元々複数回の初期化に対応していない「numpy」や
1回実行すると、ガベージコレクト任せなため、解放までに時間がかかってしまう「pythonnet」などがこれに該当します。
hmPython3 x86 版は、Python3.9.10ですので、
対象のnumpyのPackageは
がダウンロード対象となります。
もしも、秀丸エディタ 64bit版を使っているなら、hmPython3 x64 版で、Python3.9.10となりますので、
numpyのPackage Indexは
対象のnumpyのPackageは
がダウンロード対象となります。
hmPython3には秀丸フォルダのサブディレクトリの「HmPython3」フォルダ内に、
「PythonDev.bat」が用意されており、これを利用することで、
「パスが通っていないPythonに一時的にパスを通し、少し楽にコマンドを打つことが出来るようになっています」
他の正規インストールをしたPythonが存在すると、「pip」コマンドを直接使うと、
そちらのPythonへとインストールされてしまいます。
これを避けるには、以下のように「python -m」を先頭につけて、
どのPythonへとインストールするのかを明示するコマンドを入力しましょう。
1回目は無事実行出来ますが、2回実行すると、
秀丸が不正終了してしまうことがわかります。
numpyは「プロセスが継続した状態」で複数回の「Python環境の初期化」に対応していないためです。
hmPython3からアウトプロセスとしてPythonを起動し、
「インプロセス」と「アウトプロセス」で連携することで、対処してください。
サンプル例を、hmPythonとアウトプロセスPython連携に掲載しています。