PyinstallerでUPXを使用するにはどうすればよいですか?
ドキュメントをフォローしています。
UPXをダウンロードしました。
私のファイルは次のようになります:
import csv
import Selenium
import pandas
print('Hello')
次に実行します:
pyinstaller -F --upx-dir C:\Users\DD\Downloads\upx394w\upx394w\123\upx308w\upx.exe zz.spec
これはファイルのサイズには影響しません。
これを機能させる方法はありますか?
# -*- mode: python -*-
block_cipher = None
a = Analysis(['zz.py'],
pathex=['C:\\Users\\DA\\13\\14'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='zz',
debug=False,
strip=False,
upx=True,
runtime_tmpdir=None,
console=True )
UPX実行可能ファイルではなく、UPXディレクトリを指定する必要があります。
例えば。:
pyinstaller myfile.py --upx-dir=..\upx391w -y --onefile
PyInstallerが現在の回答とコメントが示唆するよりも(2019年9月に)より役立つように見えるため、新しい回答を追加します。
UPXが機能している場合、ビルドの早い段階で出力934 INFO: UPX is available.
が表示されます。
さらに、PyInstallerがupxを呼び出している多くの出力行を確認できます。
--upx-dir
を指定しませんでしたが、upx.exe
環境変数で$PATH
を使用できました。
GlennSのコメントに加えて、この動作はpyinstaller
のドキュメントに記載されています。したがって、これは、この点に関して文書化されていない偶発的な利点ではありません。
参照 https://pyinstaller.readthedocs.io/en/v3.3.1/usage.html#using-upx