如何将UPX与pyinstaller一起使用?
我正在关注文档。
我已经下载了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 )
答案 0 :(得分:5)
需要指定UPX目录,而不是UPX可执行文件:
e.g:
pyinstaller myfile.py --upx-dir=..\upx391w -y --onefile
答案 1 :(得分:0)
添加一个新答案,因为似乎PyInstaller现在(2019年9月)比当前答案和评论更有用。
如果UPX正在运行,我会在构建初期看到输出934 INFO: UPX is available.
。
此外,我可以看到PyInstaller调用upx的许多输出行。
我没有指定--upx-dir
,但是我的upx.exe
环境变量中有$PATH
可用。
答案 2 :(得分:0)
除了GlennS的评论:pyinstaller
文档中也明确指出了这种行为。因此这不是这方面的无证偶然收益。
参见https://pyinstaller.readthedocs.io/en/v3.3.1/usage.html#using-upx