エンジニアの卵の成長日記

ふわっちで配信してますhttps://whowatch.tv/profile/w:kurowasi2525

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

はじめに

友達から頂いた案件で、簡単に実行できるようにして欲しいという依頼があり、

PythonコードをPyinstallerでexe化した際に躓いたところを紹介

案件の詳しい話は以下の記事で

kurowasi2525.hatenablog.com

pyinstallerとは

Pythonで書かれたプログラムをexeファイルに変換してくれる。

当たり前?ですが、今回はWindowsの方対象です。

ANACONDAをインストール

なぜか、普通に入れたPythonだと動かなかったため、

ANACONDAを入れたほうがいいと思います。

www.anaconda.com

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化したフォルダ名内にコピーすれば大丈夫

最後に

質問・ご意見などありましたら、Twitterにご連絡くdさい。

少しでもこの記事が良いと思って貰えたなら、Twitterのフォロー、Kyashお願いします!

twitter.com

f:id:kurowasi2525:20180616200734j:plain