python:pyinstaller用法

一、基本用法

在项目所在文件夹按住shift 单击鼠标右键弹出菜单,打开Powershell,直接输入代码:

1、带图标,生成一个文件,关闭控制台

pyinstaller -F -w -i p.ico 1.py

2、生成一个文件,关闭控制台

pyinstaller -F -w 1.py

3、生成一个文件,关闭控制台,添加数据,排除不必要的库

pyinstaller -Fwi 4.ico 1.py --add-data 'data;.' --exclude-module Pillow --exclude-module tkinter

二、pyinstaller相关参数

参数作用
-F, onefile产生一个文件用于部署(参见 XXXXX).
-D, onedir产生一个目录用于部署(默认)
-K, tk在部署时包含TCL/TK
-a, ascii不包含编码,在支持 Unicode 的 python 版本上默认包含所有的编码
-d, debug产生debug 版本的可执行文件
-w, windowed,noconsole使用Windows子系统执行,当程序启动的时候不会打开命令行,只对Windows 有效
-c, nowindowed,console使用控制台子系统执行(默认),只对Windows有效
-s, strip可执行文件和共享库将run through strip. 注意 Cygwin 的 strip 往往使普通的 win32 Dll 无法使用
-X, upx如果有UPX 安装 执行 Configure.py 时检测 会压缩执行文件(Windows 系统中的 DLL 也会 参见 note)
-o DIR, out=DIR指定spec 文件的生成目录 如果没有指定 而且当前目录是 PyInstaller的根目录 会自动创建一个用于输出 (spec 和生成的可执行文件 的目录 如果没有指定 而当前目录不是 PyInstaller 的根目录 则会输出到当前的目录下
-p DIR, path=DIR设置导入路径和使用 PYTHONPATH 效果相似 可以用路径分割符(Windows 使用分号 ,Linux 使用冒号 分割 指定多个目录 也可以使用多个 p 参数来设置多个导入路径
–icon=<FILE.ICO>将file.ico 添加为可执 行文件的资源 只对 Windows 系统有效
–icon=<FILE.EXE,N>将file.exe 的第 n 个图标添加为可执行文件的资源 只对Windows 系统有效
-v FILE,version=FILE将verfile 作为可执行文件的版本资源 只对 Windows 系统有效
-n NAME,name=NAME可选的项目(产生的 spec 的)名字 如果省略 第一个脚本的主文件名将作为 spec 的名字

三、载入图片数据

1、编辑qrc文件

  • ①先把图标资源文件放到工程所处的文件夹下面
  • ②在同一目录下(后面的操作都在该目录进行)创建一个 txt 文件 resource.txt 打开编辑
    格式如下:
<RCC>
    <qresource prefix="/">
        <file>1.png</file>
        <file>2.png</file>
        <file>3.png</file>
        ......
        # 有多少文件就写多少行
    </qresource>
</RCC>
  • ③保存后更改文件后缀名为.qrc
    在这里插入图片描述

2、qrc转换为py文件

  • ①在项目所在文件夹按住shift 单击鼠标右键弹出菜单,打开Powershell

  • ②键入命令pyrcc5 -o 目标文件名 源文件名
    在这里插入图片描述

3、代码中载入py文件

在这里插入图片描述
在这里插入图片描述

注意:图片名称还是原来的名称,前面的“:”冒号一定不能少
最后使用pyinstaller 打包
键入pyinstaller -F -w -i 1.ico work.py
这个时候将之前用到的png 图标文件、qrc 文件和pyinstaller 生成的两个文件夹等删除也可以正常运行

四、打包依赖文件

源代码中所需路径修改为:

import os

# 路径转换函数
def temp_file(text):
    if getattr(sys, 'frozen', None):
        basedir = sys._MEIPASS
    else:
        basedir = os.path.dirname(__file__)

    print(basedir)

    return os.path.join(basedir, text)

# 调用时
file_path = temp_file('1.xlsx')

打包命令:pyinstaller -Fwi w.ico 1.py --add-data '1.xlsx;.'

五、问题集锦

1、启动多进程时,产生多个窗口

multiprocessing.freeze_support()    # 多进程冻结窗口

在主进程中使用:
在这里插入图片描述
在多进程调用的函数后面使用:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值