如何将UPX与pyinstaller一起使用?

时间:2017-12-09 15:44:44

标签: python python-3.x selenium compression pyinstaller

如何将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 )

3 个答案:

答案 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