FBS(fman build system)打包
FBS(fman build system)打包
适用于 Pyside2 和 PyQt5 项目( PySide6 和 PyQt6 需付费)
fbs 是一个基于 Python 的构建工具,用于使用 PyQt或 PySide的桌面应用程序。它获取您的源代码并将其转换为 Windows、Mac 或 Linux 上的独立可执行文件。它还允许您为您的应用程序创建安装程序。
- 运行环境:fbs 在 Windows、macOS 和 Linux(Ubuntu、Arch 或 Fedora)上运行。您还需要 Python 3。fbs 的免费版本支持 Python 3.5 和 3.6。以后的 Python 版本需要fbs Pro。
安装
在当前目录下创建虚拟环境:python3 -m venv venv
然后,使用以下命令之一激活环境:
# On Mac/Linux:
source venv/bin/activate
# On Windows:
call venv\scripts\activate.bat接下来用pip安装 fbs 及其依赖项:
pip install fbs PyQt6
您可以类似地安装PySide6, PyQt5或PySide2. 使用 PyQt6 或 PySide6 需要 fbs Pro
命令
fbs startproject # 新建项目App Name: # 输入名称Author: # 输入作者名称Mac bundle identifier:# 输入 Mac 绑定的标识符
如安装了依赖环境,则可运行:fbs run
fbs freeze # 打包成正式项目
fbs freeze --debug # 打包测试版本
目录结构
fbs 项目使用以下目录结构。括号(...)
表示文件是可选的。
-src/-build-settings/-base.json-(mac.json)-...-main-icons-python-(resources)-(freeze)-(installer/)-(windows/)-(mac/)-...-(requirements)-(base.txt)-(linux.txt)-...- 当您使用 fbs 时,您会看到它target/在上述目录旁边的名为 的文件夹中生成输出。它还可以创建一个名为 cache/ 的文件夹,您可以随时删除该文件夹。
你的 Python 代码
为了让 fbs 找到它,您的 Python 源代码必须位于src/main/python/
. 在那里,您需要一个脚本来启动您的应用程序 ApplicationContext。src/main/python/main.py
运行时 生成的默认脚本 fbs startproject
如下所示:
from fbs_runtime.application_context.PyQt6 import ApplicationContext
from PyQt6.QtWidgets import QMainWindow import sys if __name__ == '__main__': appctxt = ApplicationContext() # 1. 实例化 ApplicationContext window = QMainWindow() window.resize(250, 150) window.show () exit_code = appctxt.app.exec() # 2. 调用 appctxt.app.exec() sys.exit(exit_code)
随着您的应用程序变得越来越复杂,您可能希望将其源代码拆分到多个文件中。在这种情况下,建议您将它们全部放在一个包装中。例如,如果您的应用程序名为 My App,则可以调用包my_app
,目录结构如下所示:
src/main/python/my_app/__init__.pymain.pymodule_a.pymodule_b.py
资源文件
只需将它们放在以下子文件夹之一中 src/main/resources/
:
-base/ # 适用于所有操作系统所需的文件
-windows/ # 仅适用于 Windows 所需的文件
-mac/ # 同理
-linux- # 同理- 当您调用 时fbs freeze,fbs 会自动将适用的文件复制到文件夹内您应用的冻结目录中target/。- 要从 Python 代码访问资源文件,只需调用 ApplicationContext.get_resource(*rel_path) ,此方法返回 具有给定名称或(相对)路径的资源文件的绝对路径。- src/main/resources/base/image.jpg 并且调用 get_resource('image.jpg'),则此方法返回图像的绝对路径。如果给定文件不存在,则引发 FileNotFoundError。
FBS(fman build system)打包相关推荐
- Build settings from command line: SDKROOT = iphoneos12.1 note: Using new build system note: Plannin
HBuilder ios云端打包报错如下: 亲测有效(仅针对我),前方巨坑~~~~~~~ 在自动生成图标这一栏,选择自己需要的png图片(官方建议是1024X1024,我的是256x256的也行): ...
- 使用Xcode External Build System实现Rust 项目 Capture GPU Frame 在线调试 Metal 2018.12.18
文档列表见:Rust 移动端跨平台复杂图形渲染项目开发系列总结(目录) 根据kvark指导,Xcode创建External Build System项目可通过Capture GPU Frame查看gf ...
- Mastering Android NDK Build System - Part 1: Techniques with ndk-build
This article is not a "Hello world!"-type tutorial for NDK. Although I will still provide ...
- ST3新建py2和py3的build system
win7上同时装了py2和py3,在ST3中执行需要分别新建各自的build system:Tools->Build System->New Build System py2: {&quo ...
- VSCode内npm run build编译打包时候报错:code ELIFECYCLE - (已解决)
文章目录 win10系统使用VSCode打包项目进行build编译的时候,报错:Module build failed: Error: "extract-text-webpack-plugi ...
- xcode编译错误:The Legacy Build System will be removed in a future release.
xcode报错 The Legacy Build System will be removed in a future release. You can configure the selected ...
- Legacy Build System
升级XCode10后报以下报错: Showing All Messages ? Multiple commands produce '/Users/saj/Library/Developer/Xcod ...
- 错误“checking build system type... config.sub: missing argument”的解决办法
背景:交叉编译avahi库时遇到错误"checking build system type... config.sub: missing argument" ,"conf ...
- Xcode13编译提示构建系统错误Legacy Build System
现象: The Legacy Build System will be removed in a future release. You can configure the selected buil ...
最新文章
- NVIDIA深度架构
- 生信分析流程构建的几大流派
- Spring Cloud Greenwich 新特性和F版升级分享
- JavaScript函数的各种调用模式
- Find a way
- 关于《用C#编写ActiveX控件》的几点说明
- 手持光谱分光仪太贵,用什么代替?
- where is path tag generated
- 记一次 .NET 某上市工业智造 CPU+内存+挂死 三高分析
- 编程 ul 不能一行显示 跳到下行_史上最全的数控G代码编程详解
- Sql中的union和union all的讲解
- OpenResity + nginx + mysq配置
- 在应用程序中操作NorFlash
- SpringBoot(一)启动相关
- C#区分中英文统计字符串的长度
- sql 注射 nbsi分析
- 编程语言Netty原理浅析
- 最齐全的企业BI建设地图,附高清完整版BI知识图谱
- CSM (Compatility Suport Module)兼容支持模块
- 【Python】字谜游戏