pyinstaller简单使用流程

pyinstaller可以将python项目打包发布成exe文件,方便在没有python的环境上使用。

安装流程就不说了,网上很多,有在线也有离线的,我由于环境原因只能使用离线安装。

安装完成后可以在cmd中敲pyinstaller -v查看以下,安装正常会有版本号出来。
1.常用参数

参数距离含义
-Dpyinstaller -D demo.py默认选项。除了主程序demo.exe外,还会在在dist文件夹中生成很多依赖文件,推荐使用。
-Fpyinstaller -F demo.py默认选项。使用控制台,只对windows有效。
-ipyinstaller -i D:\icons\demo.ico demo.py给生成的demo.exe文件设置一个自定义的图标。
-cpyinstaller -c demo.py默认选项。使用控制台,只对windows有效。
-ppyinstaller -p D:\project\demo.py设置导入路径。
-wpyinstaller -w demo.py不使用控制台,只对windows有效。

2.打包简单的文件
当我们想要打包一个简单的py文件,即没有依赖其他py文件,包的文件。可以使用如下命令:
首先cmd进入项目目录

pyinstaller -F demo.py

然后目录下会生成一个build文件夹和一个dist文件夹,文件内就是我们需要的exe文件。

3.打包复杂的项目
复杂的项目就不能用上述的方法了,因为复杂的项目里面,会有很多依赖,我们要将这些依赖的文件也在打包的时候添加进来。
假如我们的入口文件是 demo.py,我们首先运行 pyinstaller -F demo.py ,此时我们的项目下面会生成 demo.spec文件以及build和dist文件夹,删除build和dist文件夹保留demo.spec文件,并且打开demo.spec文件编辑。

.spec 文件是使用 PyInstaller 工具打包 Python 程序时生成的配置文件。它告诉 PyInstaller 打包程序时需要包含哪些文件、依赖项以及其他设置。文件中包含了许多配置选项。

#import sys
#sys.setrecursionlimit(5000)
#这个可以不加,如果遇到了RecursionError: maximum recursion depth exceeded这个错误,加上这俩就能解决了

block_cipher = None #用于定义加密算法,可以加密打包后的代码。

a = Analysis(['demo.py''a.py', 
'b.py', 
'c.py',
'D:\\deploy\\e.py',
'D:\\deploy\\f.py',
'D:\\deploy\\g.py'],#此项目中所有的python脚本,这里只能放py文件,demo.py以外路径下的py文件需要用绝对路径说明
             pathex=[ 'D:\\Project\\python\\xxxTool'],#程序的搜索路径,在这些路径中查找被导入的模块。可以在这里加入其他demo.py以外路径下的py文件的路径,毕竟项目文件多的时候,上面的添加方式太繁琐了
             binaries=[],
             datas=[],#指定要包含在打包文件中的数据文件或其他非 Python 文件的路径和目标位置。此列表存放所有的资源文件,每个文件是一个二元组元素
              #add_files = [ ('fonts\\font.ttf', 'fonts'), 
                       ('images\\*.png', 'images'), 
                       ('images\\flappy.ico', 'images'), 
                       ('audios\\*.wav', 'audios'), ]
             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 = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='demo666', #定义打包程序的名字
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=True )# 此处console=True表示,打包后的可执行文件双击运行时屏幕会出现一个cmd窗口,不影响原程序运行
#如果想要修改程序图标,使用在EXE()中加入 icon='xxxxx', 切记:绝对路径

完成.spec的修改之后,再次执行:

pyinstaller -F demo.py

等运行结束,exe文件就在dist文件夹下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值