LoginSignup
2
4

More than 1 year has passed since last update.

.pyファイルからexeファイル化の方法とNo moduleエラーについて

Last updated at Posted at 2022-04-11

初めに

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の明示が必要らしい…

2
4
0

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
4