Python 3.x 在macOS中使用UPX减少可执行文件大小

Python 3.x 在macOS中使用UPX减少可执行文件大小,python-3.x,macos,pyinstaller,upx,Python 3.x,Macos,Pyinstaller,Upx,我正在使用PyInstaller创建捆绑应用程序。该应用程序包括numpy,因此捆绑应用程序的最终大小大于600MB。当然,我想压缩捆绑应用程序的大小,因此我通过brew install upx安装了upx。但是,PyInstaller崩溃,出现以下错误 1-对于macOS,是否有UPX甚至PyIntaller的替代方案 2-我可以修复此错误吗 3-在PyInstaller在所选文件上创建捆绑应用程序后,我可以手动运行UPX吗?如果是,您能给出一个UPX命令行的示例吗 错误: Traceback

我正在使用PyInstaller创建捆绑应用程序。该应用程序包括numpy,因此捆绑应用程序的最终大小大于600MB。当然,我想压缩捆绑应用程序的大小,因此我通过
brew install upx
安装了upx。但是,PyInstaller崩溃,出现以下错误

1-对于macOS,是否有UPX甚至PyIntaller的替代方案

2-我可以修复此错误吗

3-在PyInstaller在所选文件上创建捆绑应用程序后,我可以手动运行UPX吗?如果是,您能给出一个UPX命令行的示例吗

错误:

Traceback (most recent call last):
  File "/Users/Kenny/miniconda3/envs/umsap/bin/pyinstaller", line 11, in <module>
    sys.exit(run())
  File "/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site-packages/PyInstaller/__main__.py", line 111, in run
    run_build(pyi_config, spec_file, **vars(args))
  File "/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site-packages/PyInstaller/__main__.py", line 63, in run_build
    PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
  File "/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site-packages/PyInstaller/building/build_main.py", line 838, in main
    build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
  File "/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site-packages/PyInstaller/building/build_main.py", line 784, in build
    exec(text, spec_namespace)
  File "<string>", line 47, in <module>
  File "/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site-packages/PyInstaller/building/osx.py", line 89, in __init__
    self.__postinit__()
  File "/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site-packages/PyInstaller/building/datastruct.py", line 158, in __postinit__
    self.assemble()
  File "/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site-packages/PyInstaller/building/osx.py", line 169, in assemble
    fnm = checkCache(fnm, strip=self.strip, upx=self.upx, dist_nm=inm)
  File "/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site-packages/PyInstaller/building/utils.py", line 228, in checkCache
    dylib.mac_set_relative_dylib_deps(cachedfile, dist_nm)
  File "/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site-packages/PyInstaller/depend/dylib.py", line 308, in mac_set_relative_dylib_deps
    dll = MachO(libname)
  File "/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site-packages/macholib/MachO.py", line 95, in __init__
    self.load(fp)
  File "/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site-packages/macholib/MachO.py", line 110, in load
    self.load_header(fh, 0, size)
  File "/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site-packages/macholib/MachO.py", line 148, in load_header
    hdr = MachOHeader(self, fh, offset, size, magic, hdr, endian)
  File "/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site-packages/macholib/MachO.py", line 188, in __init__
    self.load(fh)
  File "/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site-packages/macholib/MachO.py", line 293, in load
    read_bytes, header.sizeofcmds))
ValueError: Read 1592 bytes, header reports 1992 bytes
回溯(最近一次呼叫最后一次):
文件“/Users/Kenny/miniconda3/envs/umsap/bin/pyinstaller”,第11行,在
sys.exit(run())
文件“/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site-packages/PyInstaller/_-main__.py”,第111行,正在运行
运行构建(pyi\u配置,规范文件,**vars(args))
文件“/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site-packages/PyInstaller/__-main___;.py”,第63行,在运行版本中
PyInstaller.building.build\u main.main(pyi\u配置,spec\u文件,**kwargs)
文件“/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site packages/PyInstaller/building/build_main.py”,第838行,在main中
构建(specfile,kw.get('distpath'),kw.get('workpath'),kw.get('clean_build'))
文件“/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site packages/PyInstaller/building/build_main.py”,第784行,内部版本
exec(文本,规范名称空间)
文件“”,第47行,在
文件“/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site packages/PyInstaller/building/osx.py”,第89行,在__
self.\uuuu postinit\uuuuu()
文件“/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site packages/PyInstaller/building/datastruct.py”,第158行,在__
self.assembly()
文件“/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site packages/PyInstaller/building/osx.py”,第169行,汇编
fnm=检查缓存(fnm,strip=self.strip,upx=self.upx,dist_nm=inm)
checkCache中的文件“/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site packages/PyInstaller/building/utils.py”,第228行
动态文件mac\u集合\u相对\u动态文件deps(缓存文件,距离\u nm)
文件“/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site packages/PyInstaller/depend/dylib.py”,第308行,在mac\u set\u relative\u dylib\u deps中
dll=MachO(libname)
文件“/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site packages/macholib/MachO.py”,第95行,在__
自加载(fp)
文件“/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site packages/macholib/MachO.py”,第110行,已加载
自加载头(fh,0,尺寸)
文件“/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site-packages/macholib/MachO.py”,第148行,加载头
hdr=机头(自身、fh、偏移、大小、魔法、hdr、endian)
文件“/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site packages/macholib/MachO.py”,第188行,在__
自负载(fh)
文件“/Users/Kenny/miniconda3/envs/umsap/lib/python3.7/site packages/macholib/MachO.py”,第293行,已加载
读取(字节,头.sizeofcmds))
ValueError:读取1592字节,标头报告1992字节

您的问题有什么解决方案吗,@HafizSiddiq还没有