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__.py main.py module_a.py module_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。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/45507.html