- 嵌入式
- 系统编程
【免费下载链接】fprime
F´ - A flight software and embedded systems framework
本指南面向想要在 Linux 或 macOS 上快速搭建 F´(F Prime)飞行软件与嵌入式系统框架开发环境的个人开发者和研究人员,系统介绍从系统依赖、Python 虚拟环境、核心仓库克隆到工具链安装、安装验证与常见问题修复的完整流程。读完本文,你将能够独立完成一次可用的 F´ 环境部署,并通过构建参考应用Ref与启动 GDS 图形界面来确认 Autocoder 和地面站工具链均已正确安装。
F´ 的官方安装指南位于 docs/INSTALL.md,本文以其为骨架,并结合仓库内的依赖清单、构建脚本与 CI 测试用例对每一步给出源码级佐证。对于有特殊需求的大型项目,官方指出可能需要在本文流程基础上进一步扩展,本文先解决"从零到可用"这一核心问题。
安装前的环境要求
在开始安装之前,需要先确认宿主机的软硬件环境满足 F´ 的基本依赖。官方列出的硬性要求如下:
| 依赖项 | 说明 |
|---|---|
| 操作系统 | Linux 或 macOS |
| git | 用于克隆 F´ 核心仓库 |
| CMake 3.16 或更新 | 命令行工具(cmake)必须位于系统 PATH 中 |
| C/C++ 编译器 | Clang 或 GNU 工具链(如gcc/g++) |
| Python 3.7+ | 同时需要虚拟环境(venv)与 PIP 支持 |
如果宿主机无法满足上述任意一项,官方建议改用虚拟机(例如 VirtualBox)继续安装。
从仓库的setup.py可以看到,F´ 的 Python 工具栈在声明层面对 Python 版本的下限要求正是 3.7(python_requires=">=3.7"),其classifiers中显式列出了对 Python 3.7、3.8、3.9、3.10 的官方支持范围,与安装指南的 "Python 3.7+" 完全一致。此外,setup.py将自身定义为 "fprime meta-package",其职责是"把 fprime-fpp、fprime-tools、fprime-gds 三个子包以经过测试的兼容版本组合拉入用户环境",这是理解整个安装流程的关键——安装 F´ 本质上是在安装一套经过版本配对的 Python 工具集。
提示:不同操作系统还有各自的补充注意事项,详见文末的故障排查章节。
第一步:创建 Python 虚拟环境
F´ 的工具链(FPP 编译器、fprime-util构建工具、GDS 地面数据系统)都是以 Python 包形式通过 PIP 分发的。由于 Python 常被操作系统本身大量使用,为避免污染系统环境、也避免系统自带包版本与项目依赖冲突,官方强烈建议在虚拟环境中运行 F´ 的 Python 工具。
虚拟环境可以创建在任何用户拥有读写权限的路径下,本指南使用$HOME/fprime-venv作为示例:
python3 -m venv $HOME/fprime-venv . $HOME/fprime-venv/bin/activate pip install -U setuptools setuptools_scm wheel pip三个需要说明的细节:
- 激活环境:
. $HOME/fprime-venv/bin/activate必须在每一个想要使用虚拟环境的新终端中重新执行,该命令只是为当前 Shell 进程注入环境变量,不会跨终端生效。 - 升级 setuptools_scm:
setup.py中通过use_scm_version从 Git 标签自动推导fprime元包的版本号,因此需要较新的setuptools_scm才能正常工作。 - 升级 pip 与 wheel:保证后续安装预编译 wheel 包与解析依赖时不会因版本过旧而失败。
第二步:克隆 F´ 核心仓库并安装工具集
安装 F´ 首先需要通过 Git 克隆核心仓库,这一步会拉取框架本身及全部 C++ 源码。克隆完成后,使用仓库自带的requirements.txt安装全部工具及其经过测试的固定版本。
git clone <fprime 核心仓库地址> pip install -r fprime/requirements.txt注意:当切换 F´ 版本时,务必重新执行
pip install -r fprime/requirements.txt,以确保工具版本与新的框架版本配套(CI 脚本 ci/bootstrap.bash 中也采用了类似的安装方式)。
仓库根目录下的 requirements.txt 是一份完整的固定版本(pinned)依赖清单,其中与 F´ 直接相关的核心工具包括:
| 包名 | 版本(当前仓库锁定) | 作用 |
|---|---|---|
| fprime-fpp | 1.2.0 | FPP(F Prime 规划语言)编译器 |
| fprime-tools | 3.1.2a1 | fprime-util构建/生成命令行工具 |
| fprime-gds | 3.1.5a1 | F´ 地面数据系统(GDS) |
| argcomplete | 1.12.3 | 命令行 Tab 自动补全支持库 |
| pytest | 6.2.5 | 集成测试与单元测试运行 |
| Cheetah3 / lxml / pyzmq / Flask 等 | — | 代码生成模板、XML 解析、通信与 GDS 后端依赖 |
这份清单恰好印证了 setup.py 中install_requires对三个子包的最小版本约束(fprime-tools>=v3.1.0a2、fprime-gds>=v3.1.0a2、fprime-fpp>=v1.0.2b12):无论走"一条命令装全套"还是"单独安装子包",最终都应落在相互兼容的版本组合上。
第三步:验证安装是否成功
安装完成后,可以通过两条命令快速验证:先验证 Autocoder(代码自动生成器)与构建系统,再验证 GDS 地面站组件。如果某个组件没有正确安装,对应的命令会直接失败。
验证 Autocoder:构建 Ref 参考应用
Ref是仓库中随附的参考部署(Reference Deployment),包含了自定义组件与完整拓扑,是最合适的"冒烟测试"目标:
cd Ref fprime-util generate fprime-util build --jobs "$(nproc || printf '%s\n' 1)"其中fprime-util generate负责生成 CMake 构建系统,fprime-util build --jobs ...执行并行编译;$(nproc || printf '%s\n' 1)会取 CPU 核数作为并行任务数,在没有nproc命令的系统上则回退为 1。
从源码结构看,Ref/CMakeLists.txt 是整个构建的组织核心:它先include("../cmake/FPrime.cmake")引入框架核心构建规则,再通过add_fprime_subdirectory逐个加入PingReceiver、RecvBuffApp、SendBuffApp、SignalGen四个参考组件与Top拓扑目录,最后由register_fprime_deployment()将Ref注册为可部署应用,并对部署可执行文件启用-Wall、-Wextra、-Werror等一系列严格编译选项。CI 中的 ci/tests/fputil.bash 也是以完全相同的fprime-util generate/fprime-util build序列对多个部署进行回归验证的,可见这是官方认可的标准验证路径。
验证 GDS:启动 HTML 图形界面
Autocoder 构建成功后,Ref目录下会生成包含预构建字典(dictionary)与二进制文件的构建产物(build-artifacts),GDS 依赖这些产物运行:
fprime-gds -g html -r <path to fprime checkout>/Ref/build-artifacts该命令以 HTML 界面模式启动 GDS,并通过-r指定构建产物根目录。Ref必须包含对应系统的预构建字典与二进制文件,这通常由上一步的 Autocoder 安装测试保证(即需要先具备可用的 Autocoder 安装)。
高级选项
以下选项适用于需要进一步定制环境的用户,它们通常要求对 F´ 工具与版本机制有一定了解。
启用命令行 Tab 自动补全
F´ 的多个命令行工具支持 Tab 自动补全,详细操作见 docs/UsersGuide/user/autocomplete.md。该文档基于argcomplete库(正是 requirements.txt 中锁定的argcomplete==1.12.3)实现,支持 bash、zsh、fish、tcsh 等常见 Shell,目前适用于fprime-cli工具,可补全子命令名、选项、文件路径乃至所连 F´ 实例的可用命令。
其核心激活方式有两类:
- 手动激活(每个新 Shell 执行一次):
- bash:
eval "$(register-python-argcomplete fprime-cli)" - zsh:先
autoload -U bashcompinit && bashcompinit,再执行与 bash 相同的eval ...命令 - fish:
register-python-argcomplete --shell fish fprime-cli | source - tcsh:
eval `register-python-argcomplete --shell tcsh fprime-cli`
- bash:
- 随虚拟环境激活:将上述输出追加到虚拟环境的激活脚本中(如 bash/zsh 为
$VIRTUAL_ENV/bin/activate,fish 为activate.fish,tcsh 为activate.csh),之后每次激活环境即自动启用补全;该方式会修改 Python 管理的虚拟环境文件,若后续出现异常,重装 F´ 并跳过本节即可恢复。
单独安装各工具
F´ 的每个工具都可以通过对应的子包单独安装,但必须注意保持版本兼容:
| 工具 | 对应包 |
|---|---|
| fpp(FPP 编译器) | fprime-fpp |
| fprime-util(构建工具) | fprime-tools |
| GDS(地面数据系统) | fprime-gds |
注意:
fprime-gds依赖fprime-tools,建议直接安装fprime-gds,让 PIP 自动拉取兼容版本的fprime-tools。
安装可选组件
部分包附带可选组件,通过方括号中的 extra 名称安装:
| 包 | 说明 |
|---|---|
| fprime-tools[dev] | 安装用于开发 F´ Python 代码的开发工具 |
| fprime-gds[uart-adapter] | 安装 GDS 的 UART 通信适配器 |
| fprime-gds[test-api-xls] | 为集成测试框架安装 Excel 日志记录支持 |
示例:
pip install fprime-gds[uart-adapter]这些组件会引入大量额外依赖库,并非所有系统都支持,因此按需安装即可。
故障排查
本节汇总了 F´ 安装过程中的常见问题与已知解法。
fprime-util: command not found
如果在虚拟环境中遇到"命令找不到",最常见的原因是新终端没有重新激活虚拟环境。请先执行:
. $HOME/fprime-venv/bin/activate如果是在不使用虚拟环境的情况下安装,PIP 有时会把用户工具安装到$HOME/.local/bin,此时需要将该目录加入 PATH。
Helper script 'fpp-redirect-helper' exited with reason: Permission denied
该错误通常意味着辅助脚本cmake/autocoder/fpp-wrapper/fpp-redirect-helper丢失了可执行权限。从源码看,cmake/autocoder/fpp-wrapper/fpp-redirect-helper 是一个 shell 脚本,其作用是:将第一个参数作为 stdout 输出文件,把剩余参数拼成命令执行并把其标准输出重定向到该文件——它由 FPP 包装器在代码生成阶段调用,因此必须可执行。
验证与修复步骤:
cd fprime/cmake/autocoder/fpp-wrapper/ ls -l chmod 700 fpp-redirect-helperUbuntu、Debian 系系统的 Java 与 Python PIP 问题
Ubuntu 及多数 Debian 衍生版本默认的 Python 3 安装并不包含 PIP 包。可在这些系统上执行:
sudo apt install git cmake default-jre python3 python3-pip python3-venv之后即可正常运行后续安装。
macOS 上 CMake 命令找不到
如果直接从 CMake 官网安装(而非使用 Homebrew 或 MacPorts),其命令行工具默认不在 PATH 中。最快的修复方式是在终端执行:
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install该命令会为系统安装 CMake 命令行工具。
系统 Python、系统包与 python3 的关系
许多操作系统会通过包管理器(apt、yum 等)提供 Python 的 PIP 包。多数 Python 项目并不推荐使用这类系统包,因为其版本往往与项目依赖的指定版本不一致。因此官方建议在虚拟环境中安装 F´,这一做法在本文第一步中已采用。
macOS 上 Python 3.6+ 的 SSL 证书错误
Python 3.6+ 自带的 openSSL 需要访问 macOS 的根证书。若安装 F´ 时出现如下错误:
Failed find expected download: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate请在 macOS 终端执行以下命令安装所需证书:
cd /Applications/Python\ 3.X/ ./Install\ Certificates.command执行完成后重新尝试安装 F´ 即可。
小结
遵循本指南的流程:确认系统依赖 → 创建 Python 虚拟环境 → 克隆仓库并安装固定版本工具集 → 通过Ref构建与 GDS 启动验证安装,即可完成一套标准可用的 F´ 开发环境。对于更复杂的项目需求,可进一步阅读 docs/UsersGuide/user/fprime-util.md 了解构建工具的更多用法(单元测试、平台参数、部署选择等),或参考 docs/UsersGuide/user/autocomplete.md 提升命令行操作效率。
- 嵌入式
- 系统编程
【免费下载链接】fprime
F´ - A flight software and embedded systems framework
相关推荐
MMPose 完整安装指南:环境准备、源码构建、Docker 部署与故障排查
MMPose 完整安装指南:环境准备、源码构建、Docker 部署与故障排查 MMPose 是 OpenMMLab 开源的姿态估计工具箱(Pose Estima
计算机视觉人工智能深度学习FiftyOne 安装完全指南:环境准备、虚拟环境、升级降级与故障排查
FiftyOne 安装完全指南:环境准备、虚拟环境、升级降级与故障排查 本篇指南以 FiftyOne 官方安装文档( docs/source/installat
人工智能计算机视觉数据集数据可视化数据标注模型评测F´(F Prime)快速上手指南:NASA 组件化飞行软件框架的安装、架构与开发入门
F´(F Prime)快速上手指南:NASA 组件化飞行软件框架的安装、架构与开发入门 F´(F Prime)是一个源自美国宇航局喷气推进实验室(JPL)的组件
嵌入式系统编程
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考