初めに
pythonを使って業務効率改善できそうなプログラムを作ったはいいけど、全くプログラミングの素養のない人にどうやって使ってもらえばいいのか…
方法としてはいくつか考えられるが、exeファイル化というものが一番簡単そうだったので、その手順のまとめと、躓いたところについて記載する。
(注:初心者なので、間違いなどあるかもしれません。また、間違いなどあればご指摘頂ければ幸いです。)
exeファイル化概要
簡潔に述べると、下記コマンドを実行するだけ。
pyinstaller test.py --onefile
細かい手順については、こちらに関しては下記サイトに簡潔にまとまっているので、こちらを参照頂いた方が良いと思われます。
【自動化】pythonコードをexeファイル化する
躓いたところ
exeファイル化までは問題なく実施できたが、実行してみたところ、下記のエラーが発生した。
moduleNotFoundError: No module named 'sklearn.utils._typedefs'
色々と確認したところ、下記サイトに解決策が記載されていた。
https://localcoder.org/pyinstaller-modulenotfounderror-no-module-named-sklearn-utils-cython-blas
要は足りないモジュールを追加で入れ込めば何とか解決できる模様。
幾つか方法があるようだが、自分の作成したコードに直接importする方法が分かりやすかったので、こちらを採用し、無事に実行できた。
具体的には
import sklearn.utils._typedefs
を1行目に足すだけ。
確認はできていないが他のモジュールに関しても同様に対応可能だと思われる。
No module系のエラーは多いようなので、自分の備忘録を兼ねて記録しておきます。
余談ですが、exeファイルを実行した際に、コマンドプロンプトがすぐに消えてエラーが確認できない場合は、exeファイル化する際に下記のように--debug allをつけると、実行ログが出力されて確認できるようになります。
pyinstaller test.py --onefile --debug all
その他参考サイト
・https://qiita.com/fault/items/030616a85c91ebe04296
ジュピターノートブックのファイル(.ipynb)から.pyファイルへの変換について
・https://www.wantanblog.com/entry/2022/01/21/205628
pyinstallerのエラーについて。importの明示が必要らしい…