fbs是基于Python的构建工具,适用于将PyQt或Qt用于Python的桌面应用程序 。它获取您的源代码并将其转换为Windows,Mac或Linux上的独立可执行文件。它还允许您在这些平台上为您的应用程序创建安装程序。
—— 摘自fbs官方手册
在本地环境或进入相应的虚拟环境后,即可完成安装(目前仅支持python3.6及以下的版本)
pip install -i 镜像地址 fbs进入(win/mac)
project/env/Scripts>activate source project/env/bin/activate退出
deactivate进入虚拟环境后输入命令,启动一个fbs项目
fbs startproject随后会让你输入软件的基本配置信息,可以先随意填写,后期可以更改。
完成之后会在环境的目录下生成一个src文件夹,这是软件的项目骨架,具体结构可以在官方文档上查看。
src/ 源文件的根目录 build/ settings/ 软件的基本信息 main/ icons/ 图标python/ 程序代码resources/ 数据文件,图像等 installer/ 安装程序源文件 requirements/ 存放软件的依赖项在Scripts路径下输入
project/env/Scripts>fbs run此时会启动一个空白demo
在导入项目之前,为了让fbs找到项目代码,还需要在你的mian.py中按照格式引入某些语句
from fbs_runtime.application_context.PyQt5 import ApplicationContext from PyQt5.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)将其他代码及相关的资源文件拖入到对应的文件夹后,同样在Scripts路径下输入
project/env/Scripts>fbs run此时启动的便是自己写的软件程序。
debug版
project/env/Scripts>fbs freeze --debug正式版
project/env/Scripts>fbs freeze如果一切正常,最终会在src的同级文件夹里生成一个target文件夹,其中会有一个与项目同名的文件夹,即打包好的免安装软件。
如果想打包成一个独立的exe安装包,需要安装NSIS
有时候明明是可以成功run起来的,但是一打包就失败,多半是模块的问题,毕竟有些模块七七八八很奇怪。
按照命名行的报错提示,缺啥补啥就行了。再不行的话可以在配置文件中把它忽略掉
src/build/settings/base.json { ..., “ hidden_imports”:["模块名"] }官方文档 fbs tutorial 官方文档 Troubleshooting PyQt5+QtDesigner+fbs+python创建桌面程序 用fbs打包PyQt5程序