Python & Selenium を PyInstaller で実行ファイル化するまとめ
Python で Selenium を使ったプログラムを PyInstaller で実行ファイル化する自分用まとめです。 …
公開日:
PyInstallerを使えば簡単にexeを作成できますが、1つのフォルダに複数のexeを作るにはどうすればよいのか分からなかったので調べてみました。
適当にサンプルとなるpythonファイルを用意します。
今回は以下のhello1.pyとhello2.pyを使います。
# hello1.py
#
print('hello 1')
# hello2.py
#
print('hello 2')
hello1.pyとhello2.pyの両方のspecファイルを作成します。
以下を実行するとhello1.specとhello2.specというファイルが作られます。
pyi-makespec hello1.py
pyi-makespec hello2.py
pyi-makespec
はPyInstallerをインストールすると一緒に入っています。
specファイルを開いてみると以下のような内容になっていると思います(長いので一部省略しています)。
中身は実際にはpythonコードです。
# hello1.spec
...
a = Analysis(['hello1.py'], ...)
pyz = PYZ(a.pure, a.zipped_data, ...)
exe = EXE(pyz,
a.scripts,
... )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
...)
PyInstallerはspecファイルの内容を元にしてアプリをビルドします。
このspecファイルをうまい具合に修正することで、「1つのフォルダに複数のexeを作る」ことができます。
hello1.specとhello2.specの内容を合体して1つのspecファイルを作成します。
hello.specというファイルを作成し、2つのspecファイルを元にしながら以下のように記述します。
# hello.spec
...
hello1_a = Analysis(['hello1.py'], ...)
hello1_pyz = PYZ(hello1_a.pure, hello1_a.zipped_data, ...)
hello1_exe = EXE(hello1_pyz,
hello1_a.scripts,
...)
hello2_a = Analysis(['hello2.py'], ...)
hello2_pyz = PYZ(hello2_a.pure, hello2_a.zipped_data, ...)
hello2_exe = EXE(hello2_pyz,
hello2_a.scripts,
...)
coll = COLLECT(hello1_exe,
hello1_a.binaries,
hello1_a.zipfiles,
hello1_a.datas,
hello2_exe,
hello2_a.binaries,
hello2_a.zipfiles,
hello2_a.datas,
...
name='hello')
Analysis
、PYZ
、EXE
の部分をコピペし、変数名を互いに被らないように修正します。
COLLECT
の部分もコピペしますが、1つだけにして引数を変更します。
pyinstaller hello.spec
実行が完了すると、distフォルダ以下にhelloというフォルダが作成され、その中にhello1.exeとhello2.exeが作成されます。
Python で Selenium を使ったプログラムを PyInstaller で実行ファイル化する自分用まとめです。 …
Python & Seleniumで作成したプログラムを実行形式(.exe)にします。 特に今回は一つのexeフ …
pythonで作ったプログラムを実行ファイル(.exe)に変換するのには、PyInstallerが使えます。 他にも実行 …
selenium の読み込みスピードを速くするために、広告などの邪魔なjsをブロックしたいと思いました。 …
Google ColaboratoryでStable Diffusion web UIを使って画像を生成していると、たま …
Python Selenium を実行すると ChromeDriver のコンソールウィンドウが表示されてしまいます。 …
Pythonでフォントをサブセット化(使う文字だけを抽出して軽量化)する方法を紹介します。