Python程序打包 exe


常见的打包方式都是以 pyinstaller 来打包的,根据自己的python版本装对应的包; 安装pyinstaller pip install pyinstaller

打包前文件目录结构为:

 

执行  pyinstaller -D demo_eval.py  进行程序打包;

打包过程中出现红框标注的提示,为程序打包成功;

打包结束后文件目录如下:

  1.生成build和dist文件夹

  2.dist文件中含有demo_eval.exe,可直接将该文件拷贝至程序启动处,双击进行启动;

打包生成的配置文件为  demo_eval.spec, 打开内容如下:

 

# -*- mode: python ; coding: utf-8 -*-


block_cipher = None


a = Analysis(['demo_eval.py'],
             pathex=[],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             hooksconfig={},
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)

exe = EXE(pyz,
          a.scripts, 
          [],
          exclude_binaries=True,
          name='demo_eval',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=True,
          disable_windowed_traceback=False,
          target_arch=None,
          codesign_identity=None,
          entitlements_file=None )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas, 
               strip=False,
               upx=True,
               upx_exclude=[],
               name='demo_eval')

spec文件中主要包含4部分: Analysis, PYZ, EXE和COLLECT.

Analysis以py文件为输入,它会分析py文件的依赖模块,并生成相应的信息;

PYZ是一个.pyz的压缩包,包含程序运行需要的所有依赖;

EXE根据上面两项生成,可设置打包后生成的名字;

COLLECT生成其他部分的输出文件夹,COLLECT也可以没有;

打包时的参数设置参考如下图:

 

打包过程中如有问题可随时留言!

posted @ 2022-04-12 21:56  随性岁分享  阅读(84)  评论(0编辑  收藏  举报