pyinstallerで躓いたところ~Pythonコードをexe化~

2019/11/30

2018/08/11投稿のはてなブログから移行した内容です.

pyinstallerとは

Pythonで書かれたプログラムをexeファイルに変換してくれる。
当たり前?ですが、今回はWindowsの方対象です。

ANACONDAをインストール

なぜか、普通に入れたPythonだと動かなかったため、
ANACONDAを入れたほうがいいと思います。

pyinstallerのインストール

Anaconda Promptを起動

$ pip install pyinstaller
$ cd exe化するPythonファイルがあるディレクトリ
$ pyinstaller hoge.py

successみたいのが表示されると、同じディレクトリに

  • buildフォルダ
  • distフォルダ
  • hoge.spec が作成される

distフォルダ内にPythonファイル名と同じフォルダが作成されている。
今回の場合、hogeフォルダ

そのフォルダ内に、exeファイルがあるのでダブルクリックすれば実行されるはず

躓きポイント

Pythonコード内で他のファイルを参照していると、落ちてしまう
Pythonの標準ライブラリ?や自分で作成したPythonファイルなどは、
ちゃんと参照してくれる。

import系

今回僕は、Seleniumを使っていて、このSeleniumはpipで入れたのだが、
このSeleniumをインポートする部分で落ちてしまう。

解決策としては、インポートしたモジュールを
dist/exe化したフォルダ名内にコピーすると、うまくいく
モジュールを探す方法としては、以下のコマンドを打つことで確認することができる。

$pip show モジュール名

chromedriver, csv, jsonなど

これもimport系と同じように、dist/exe化したフォルダ名内にコピーすれば大丈夫