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)打包相关推荐

  1. Build settings from command line: SDKROOT = iphoneos12.1 note: Using new build system note: Plannin

    HBuilder ios云端打包报错如下: 亲测有效(仅针对我),前方巨坑~~~~~~~ 在自动生成图标这一栏,选择自己需要的png图片(官方建议是1024X1024,我的是256x256的也行): ...

  2. 使用Xcode External Build System实现Rust 项目 Capture GPU Frame 在线调试 Metal 2018.12.18

    文档列表见:Rust 移动端跨平台复杂图形渲染项目开发系列总结(目录) 根据kvark指导,Xcode创建External Build System项目可通过Capture GPU Frame查看gf ...

  3. 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 ...

  4. ST3新建py2和py3的build system

    win7上同时装了py2和py3,在ST3中执行需要分别新建各自的build system:Tools->Build System->New Build System py2: {&quo ...

  5. VSCode内npm run build编译打包时候报错:code ELIFECYCLE - (已解决)

    文章目录 win10系统使用VSCode打包项目进行build编译的时候,报错:Module build failed: Error: "extract-text-webpack-plugi ...

  6. 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 ...

  7. Legacy Build System

    升级XCode10后报以下报错: Showing All Messages ? Multiple commands produce '/Users/saj/Library/Developer/Xcod ...

  8. 错误“checking build system type... config.sub: missing argument”的解决办法

    背景:交叉编译avahi库时遇到错误"checking build system type... config.sub: missing argument" ,"conf ...

  9. Xcode13编译提示构建系统错误Legacy Build System

    现象: The Legacy Build System will be removed in a future release. You can configure the selected buil ...

最新文章

  1. NVIDIA深度架构
  2. 生信分析流程构建的几大流派
  3. Spring Cloud Greenwich 新特性和F版升级分享
  4. JavaScript函数的各种调用模式
  5. Find a way
  6. 关于《用C#编写ActiveX控件》的几点说明
  7. 手持光谱分光仪太贵,用什么代替?
  8. where is path tag generated
  9. 记一次 .NET 某上市工业智造 CPU+内存+挂死 三高分析
  10. 编程 ul 不能一行显示 跳到下行_史上最全的数控G代码编程详解
  11. Sql中的union和union all的讲解
  12. OpenResity + nginx + mysq配置
  13. 在应用程序中操作NorFlash
  14. SpringBoot(一)启动相关
  15. C#区分中英文统计字符串的长度
  16. sql 注射 nbsi分析
  17. 编程语言Netty原理浅析
  18. 最齐全的企业BI建设地图,附高清完整版BI知识图谱
  19. CSM (Compatility Suport Module)兼容支持模块
  20. 【Python】字谜游戏

热门文章

  1. 小米开放平台接入笔记
  2. 库存管理系统软件哪个好
  3. 数仓学习笔记(3)——数仓建模理论
  4. 华菱电子冲刺创业板上市:计划募资6.5亿元,总经理为日本国籍
  5. 如何用AngularJS构建管理后台
  6. java组卷系统框架_java毕业设计_springboot框架的试题库自动组卷
  7. 问题 G: 铲雪车snow
  8. 国防科技大学计算机招生简章,2014年国防科技大学本科招生简章
  9. 纯js封装一个无缝轮播
  10. 第二章 1位全加器的传输延迟时间计算