kivyで作ったアプリケーションをPyinstallerを使ってEXEファイル化する方法
みなさまおはこんばんにちは、せなです
今回はKivyアプリケーションをEXEファイルにする方法を説明したいと思います
環境
Python:3.7
Kivy:1.11.1
PyInstaller:3.6
構成
Projectフォルダ
→main.py
→main.kv
手順
SPECファイルへの追記
Projectフォルダ直下で以下のコマンドを実行する
pyinstaller main.py --onefile
※main.py等は自分の環境に応じ、置き換えて実行してください
コマンドを実行するとmain.specとdistフォルダが生成されます
distファルダは触らずにmain.specファイルに以下の追記を行います
追記箇所は以下です
- from kivy_deps import sdl2, glew
- hiddenimports=['win32file’, 'win32timezone’],
- *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
- coll = COLLECT(exe, Tree('.’), ~ name=’main’)
from kivy_deps import sdl2, glew # 追記1 依存ファイルのインポート
block_cipher = None
a = Analysis(['main.py'],
pathex=['c:\\work\\projectkivy'],
binaries=[],
datas=[],
hiddenimports=['win32file', 'win32timezone'], # 追記2 FileChooserを使用している場合に必要
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)], # 追記3 依存関係の設定
name='main',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True ) # Falesで実行時のコンソールを非表示にできる
coll = COLLECT(exe, Tree('.'), # 追記4 以下行すべて
a.binaries,
a.zipfiles,
a.datas,
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
strip=False,
upx=True,
name='main')
SPECファイルにPyinstallerを使用
main.specのあるディレクトリで以下のコマンドを実行してください
pyinstaller main.spec
上記コマンドを実行した後にdistフォルダのmainフォルダ内にあるmain.exeを実行してください
そのEXEファイルを実行して正しく動作すればEXEファイル化完了です
ディスカッション
コメント一覧
まだ、コメントがありません