python3_将多个.py文件打包成exe程序并添加图标

一、安装pyinstaller

打开DOS窗口输入以下命令:

pip install pyinstaller

二、打包

1、准备打包的文件

打包的项目为Tkinter目录下的所有python文件,其中test.py为主文件
python3_将多个.py文件打包成exe程序并添加图标_第1张图片

2、打包流程

① 生成主函数对应的spec文件,命令

在Tkinter路径下使用:pyi-makespec test.py

在这里插入图片描述

执行命令后,Tkinter目录下会生成test.spec文件
python3_将多个.py文件打包成exe程序并添加图标_第2张图片
② 修改spec文件,加入需要打包的所有python文件

spec文件中主要包含4个class: Analysis, PYZ, EXE和COLLECT:

  • Analysis以py文件为输入,它会分析py文件的依赖模块,并生成相应的信息
  • PYZ是一个.pyz的压缩包,包含程序运行需要的所有依赖
  • EXE根据上面两项生成
  • COLLECT生成其他部分的输出文件夹,COLLECT也可以没有。
    python3_将多个.py文件打包成exe程序并添加图标_第3张图片
    test.spec文件
# -*- mode: python ; coding: utf-8 -*-

block_cipher = None


a = Analysis(['test.py','test1.py','test2.py','test3.py'], #所有要打包的.py文件
             pathex=['C:\\Users\\Admin\\Desktop\\Tkinter'], #此列表为项目绝对路径
             binaries=[],
             datas=[('1.png','img')],  # 此处可以添加静态资源,例如你有个图片文件夹img,可以这样写[('1.png','img')],1.png图片要有路径,我这里是放在代码同个目录下的,打包以后会有一个img文件夹
                                     #[('1.png','img'),('test.txt','.')],生成多个文件夹,点表示当前文件夹。
             hiddenimports=[],
             hookspath=[],
             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='test88', #程序exe的名称
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True, # 打包的时候进行压缩,False表示不压缩
          console=True, #此处console=True表示,打包后的可执行文件双击运行时屏幕会出现一个cmd窗口,不影响原程序运行,如不需要执行窗口,改成False即可。
          icon='C:\\Users\\Admin\\Desktop\\Tkinter\\1.ico') #程序图标,要绝对路径
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               upx_exclude=[],
               name='test') #程序文件夹名称

③通过pyinstaller打包spec文件

pyinstaller test.spec

在这里插入图片描述

此时项目下多了两个目录,进入dist目录,找到dist路径下后缀名为exe的文件。这里为dist下目录test下的test88.exe
python3_将多个.py文件打包成exe程序并添加图标_第4张图片
python3_将多个.py文件打包成exe程序并添加图标_第5张图片
注:如果要在其他电脑运行程序,需要把test整个文件夹拷贝过去。

你可能感兴趣的:(python,#,python,pyinstaller)