如何交叉编译Python软件包(例如Numpy)以适用于ARM架构

7
我知道这个问题之前已经发布过,但我找不到一个完整的答案来解决它。
我想在嵌入式系统上(平台架构:ARM 32位和一些Linux发行版)使用带有C扩展的Python软件包,例如Numpy和Twisted。
信息:工具链已经配置好了。
找到了以下替代方案:
- 使用Docker - 使用distutilscross(听起来最容易,但找不到文档) https://pypi.python.org/pypi/distutilscross - 使用虚拟机
提前感谢您。

1
Docker不会改变架构。在容器中运行的内容也应该能够在外部运行。这同样适用于虚拟机(与模拟器相对)。 - Klaus D.
@KlausD,感谢您的评论。您能否给我一些关于如何进行交叉编译的逐步建议? - Hangon
为什么需要交叉编译?在嵌入式Linux发行版(如Raspbian和Armbian)上,您可以直接使用像Numpy和Twisted这样的软件包。您可以像在非嵌入式系统上一样使用pip安装软件包。如果需要,您可以在操作系统上安装Docker,运行Python镜像,并在容器内安装和运行pip软件包。 - Nick Settje
1个回答

1

Crossenv

但我经常在使用numpy时遇到与multiarray相关的问题。

  1. Numpy可靠的交叉编译失败了。因此,我修改了PATH以使它们开始构建。
  2. 在目标Python中导入已构建的numpy也会出现该问题。

对于第二个问题:

$ sudo apt install python-numpy

这个解决方案本意是可以解决问题的,但由于我正在为嵌入式系统开发,因此无法/从未尝试使用它。

我得出结论,我应该自己交叉编译它,但随之而来的依赖问题更多。然而,如果目标不是极简主义Linux并且apt可用,则可以尝试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接