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

原文由 user9062171 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

需要指定 UPX 目录,而不是 UPX 可执行文件:

例如:

pyinstaller myfile.py --upx-dir=..\upx391w -y --onefile

原文由 denfromufa 发布,翻译遵循 CC BY-SA 3.0 许可协议

添加一个新答案,因为 PyInstaller 现在(2019 年 9 月)似乎比当前答案和评论建议的更有帮助。

如果 UPX 正在运行,我会在构建早期看到输出 934 INFO: UPX is available.

此外,我可以看到 PyInstaller 调用 upx 的许多输出行。

我没有指定 --upx-dir ,但确实有 upx.exe 在我的 $PATH 环境变量中可用。

原文由 GlennS 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题