pyinstaller を使用して、 cefpython1アプリケーションを単一の exeにバンドルしようとしています。私は、cefpython1 の例である cefsimple の distrubiton を作成する作業用の仕様ファイルを持っています。
# -*- mode: python -*-
def get_cefpython_path():
import cefpython1 as cefpython
path = os.path.dirname(cefpython.__file__)
return "%s%s" % (path, os.sep)
cefp = get_cefpython_path()
a = Analysis(['cefsimple.py'],
hiddenimports=["json.decoder", "json.scanner", "json.encoder"])
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='cefsimple.exe',
debug=False,
strip=None,
upx=False,
console=False )
coll = COLLECT(exe,
a.binaries + [('icudt.dll', '%s/icudt.dll' % cefp, 'BINARY')],
a.zipfiles,
a.datas + [('locales/en-US.pak', '%s/locales/en-US.pak' % cefp, 'DATA'), ('cefsimple.html', 'cefsimple.html', 'DATA'), ('icon.ico', 'icon.ico', 'DATA')],
strip=None,
upx=False,
name='cefsimple')
プロジェクト ファイルはGoogle ドライブにあります。setup.py は気にしないでください。pyinstaller の隣で遊んでいた py2exe ビルドが含まれています。これを実行するには、Python 2.7、Win32gui、cefpython1、そしてもちろん pyinstaller パッケージが必要です。私はこれを Win32 バージョンでのみテストしました! 変更があった場合は、開発用の pyinstaller をインストールしてみました。
--onefile 属性を指定して pyinstaller を実行しようとすると、何も変わらないように見えます。pyinstaller は dist の下に配布ディレクトリを作成するだけです。私が使用しているコマンドは次のとおりです。pyinstaller --onefile cefsimple.spec
シンプルな Hello World python ファイルで --onefile をテストしましたが、それで動作します。pyinstaller が単一の exe を作成しない原因は何ですか? ビルドログは何も面白いことを示していませんが、警告ファイルで理解できないことがいくつかあります。たとえば。cefpython1.cefpython という名前のモジュールはありませんが、正しい pyd が dist ディレクトリにコピーされ、アプリケーションは動作しています。
dist / の下に作成されるファイルのリストを次に示します。