python pyinstaller打包问题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

最近做项目遇到了一些python使用pyinstaller多文件打包问题,然后进行总结及解决方法


一、python打包步骤

利用pyinstaller打包

  1. 单文件打包
    1. 安装pyinstaller,安装指令:pip install pyinstaller
    2. 输入打包命令:pyinstaller -F xxx.py(xxx.py,打包的文件)
    3. 打包成功后项目中新增dist文件夹,进入dist文件,点击运行打包好的exe程序
      在这里插入图片描述
      在这里插入图片描述
  2. 多文件打包,使用spec方式
    2.1 创建spec文件,.打开终端进入项目路径下,输入指令:pyinstaller -F start_menu.py(start_menu是我项目的主文件),回车,程序结束后,发现当前目录下生成两个文件夹(bulid、dist)和一个文件start_menu.spec,现在删除两个文件夹,只保留start_menu.spec文件。
    2.2 编辑spec文件
    # -*- mode: python ; coding: utf-8 -*-
    
    block_cipher = None
    
    
    a = Analysis(['start_menu.py''check_default_speedup.py', 'check_server_os.py', 'check_speedup.py'],#此项目中所有的python脚本             pathex=[ 'D:\\Project\\python\\xxxTool'],#项目绝对路径
                 binaries=[],
                 “”“
    	             datas此列表存放所有的资源文件,每个文件是一个二元组元素
    	             格式为:datas=[('fonts\\font.ttf', 'fonts')],这样代表的是将fonts文件夹里面的font.ttf载入到虚拟目录中
    	             多个资源文件就用逗号隔开,例如datas=[('libs','libs'),('image','image')]
    	             如果是根目录下的文件则应该为datas=[('bitbug_favicon.ico','.')].代表的是根目录文件
                 ”“”
                 datas=[],
                 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,
              a.binaries,
              a.zipfiles,
              a.datas,
              [],
              name='start_menu', #打包程序的名字
              debug=False,
              bootloader_ignore_signals=False,
              strip=False,
              upx=True,
              upx_exclude=[],
              runtime_tmpdir=None,
              icon='C:\\Users\\Administrator\\Desktop\\bitbug_favicon.ico',# 生成的exe文件图标,需要完整路径
              console=True )# 此处console=True表示,打包后的可执行文件双击运行时屏幕会出现一个cmd窗口,不影响原程序运行,建议是关掉,有的影响使用,改为False即可
    
    2.3 编辑好之后,执行start_menu.spec文件,在项目的路径下输入指令:pyinstaller -F start_menu.spec
    2.4 打包成功后项目中新增dist文件夹,进入dist文件,点击运行打包好的exe程序

二、所遇到的问题

1.多文件打包时,执行start_menu.spec文件,提示makespec options not valid when a .spec file is given

在这里插入图片描述
原因:因为命令中多了-F
解决方法:

  1. 将-F删除,改成pyinstaller start_menu.spec
  2. 换pyinstaller版本,目前我用5.1有问题,我换成4.10就没问题了

总结

记录一下这几天出现的问题,欢迎指正

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值