将Python程序转换为C/C++,然后转换为RISC-V可执行文件

Bha*_*nal 5 c c++ python nuitka riscv

我一直在尝试在RISC-V架构的系统上运行Python程序。该程序涉及运行一个简单的人工神经网络模型,并涉及 numpy 的使用。

然而,运行在RISC-V架构上的操作系统(目前运行在FPGA上)是一个非常基本的Linux系统,无法安装Python3或Pip等软件。但它可以编译C/C++程序并运行它们。所以我认为仍然有办法在这个系统上运行我的Python程序,通过在我的主机系统上将其转换为C/C++,将其传输到RISC-V系统,并在那里进行编译。

问题是我无法在任何地方找到好的 Python 到 C/C++ 转换器软件。我发现有一些软件工具可以将Python代码转换为二进制可执行文件,例如py2exe和pyinstaller。但是,如果我尝试运行机器代码,仅与我的主机系统架构(使用 RISC-V 架构)兼容,则这是无关紧要的。

我还遇到了 Nuitka,它确实将 Python 代码转换为 C/C++ 并将其存储在可移植的分发文件夹中,但随后也为我在程序中导入的库生成共享对象文件 (.so),这又不能在RISC-V系统上执行。此外,根据我在 Nuitka 文档中看到的内容,发行版中没有编译 C/C++ 代码的指南。

所以我有几个问题:

  1. 根据我提到的有关 RISC-V 系统的限制,是否可以遵循其他任何过程来在系统上运行我的 Python 程序?
  2. 如果没有,除了 Nuitka 之外,还有什么软件工具可以用来将 Python 转换为 C/C++ 吗?
  3. 如果没有,您能否提供一个清晰的过程,说明如何使用 Nuitka 将 Python 代码转换为 C/C++,然后在 RISC-V 系统上编译给定的 C/C++ 代码?

小智 0

你说你的系统可以编译C/C++程序并运行它们。大多数 python 解释器(例如参考实现 CPython)都是 C 程序,因此最好的做法可能是尝试在系统上编译 python 本身,然后使用它运行 python 脚本。https://github.com/python/cpython#build-instructions CPython 的构建指令声称它适用于 Linux,尽管如果您在构建过程中没有使用其他程序(例如make),它可能会失败。祝你好运!