Qt for Python Mac下使用 fbs 打包软件

Python打包工具

Python的常用的打包工具包括:fbsPyInstallercx_Freezepy2exepy2app,而Qt for Python是一个跨平台的框架,因此我们希望专注于在Qt支持的三个主要平台上运行的解决方案:Linux,macOS和Windows。下表总结了对这些打包工具的平台支持:

根据上面的表可以看出,只有fbs,cx_Freeze和PyInstaller 满足我们的跨平台要求。

本文介绍其中一个打包工具 fbs 用来为Qt for Python打包,其他两个大同小异,具体可以参考官网。

FBS

fbs为Python程序打包、创建安装程序和签署应用程序提供了强大的环境。它支持管理应用程序的更新,它基于PyInstaller,因此它支持Linux,macOS和Windows。

详细的信息可以参照官方教程,或者查看文档帮助,有非常详细的操作指引。

安装

通过pip进行安装:

pip install fbs

如果您使用的是虚拟环境,请记住在安装之前将其激活。
安装后,就可以使用fbs可执行文件。

创建项目

fbs提供了很好的功能,可以通过执行以下命令来创建基础项目结构,直接在终端输入以下命令:

fbs startproject

输入后回车,会提示让你回答几个问题:

  • 项目名称
  • 作者
  • Qt绑定(PySide2或PyQt5)
  • 捆绑识别(对于macOS才有)

分别输入后回车就行了。

然后会提示:

在当前路径下就会生成一个src的目录,结构如下:

└── src
    ├── build
    │   └── settings
    └── main
        ├── icons
        │   ├── base
        │   ├── linux
        │   └── mac
        └── python

在settings目录中,有一些可以编辑的json文件,以包含有关项目的更多信息。

在main文件将是下Python目录,其内容在默认情况下是:

from fbs_runtime.application_context.PySide2 import ApplicationContext
from PySide2.QtWidgets import QMainWindow

import sys

if __name__ == '__main__':
    appctxt = ApplicationContext()       # 1. Instantiate ApplicationContext
    window = QMainWindow()
    window.resize(250, 150)
    window.show()
    exit_code = appctxt.app.exec_()      # 2. Invoke appctxt.app.exec_()
    sys.exit(exit_code)

此示例显示空QMainWindow。这时候我们只需要继续在命令行输入输入以下命令即可运行:

fbs run

冻结

验证应用程序正常工作后,可以使用以下命令继续执行冻结过程:

fbs freeze

完成此过程后,会收到一条消息,指出可执行文件的位置。例如:

Done. You can now run
`target/PySideTest.app/Contents/MacOS/PySideTest`. If that doesn't
work, see https://build-system.fman.io/troubleshooting.

这时候在目录下就可以看到多了一个target目录,并且里面包含可执行程序:

这样就可以直接双击运行可执行程序了,或者在命令行中直接进入到该目录后运行。

打包成安装文件

最后一步,要将程序打包成安装文件,比如mac下是dmg,Windows下是exe。怎么做呢,很简单,执行以下命令就会自动生成:

fbs installer

执行完成后就能在target目录下看到生成的安装包文件:

OK,这样就做好了一个打包文件,如果是自己的一个单独的项目想要用fbs打包,那么可以通过fbs startproject生成基础代码过后,将自己的项目代码拷贝到相应的目录中去,然后替换相关的图片资源等等,最关键的是要在自己的程序中添加这句:

from fbs_runtime.application_context.PySide2 import ApplicationContext

然后就可以按照以上流程打包了。
真的是简单得不能再简单,很好用。

这里只是简单的介绍大致流程,要进一步了解详细信息,可参照官方文档进行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luoyayun361

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值