簡體   English   中英

為 arm64 架構編譯 python 模塊

[英]Compile python modules for arm64 architecture

我一直在嘗試安裝一些 python 模塊,這些模塊使用基於主機架構編譯的C代碼。 最終的腳本將部署在無法訪問互聯網的 arm64 架構上,因此無法直接在其上安裝模塊。 我的機器是 Intel Mac,所以它的架構與 arm64 不同。 我正在考慮使用arm64v8/python docker 圖像創建 docker 圖像,然后將其傳輸到 arm64,但出現以下錯誤:

Using default tag: latest
latest: Pulling from arm64v8/python
no matching manifest for linux/amd64 in the manifest list entries

這意味着該解決方案將不起作用。

有人對如何解決此類問題有任何提示或技巧嗎?

您收到此錯誤是正常的。 您的 Mac 是x86_64機器, arm64v8/python映像的清單不包含您的架構,因此您無法運行它。

但是,您嘗試實現的目標是可能的,並且您的方向是正確的。 您的目標是構建您的代碼(和模塊),以argm64v8架構為目標,然后構建具有不同目標架構的 docker 映像。 我認為是一個很好的起點。

您的問題的解決方案是交叉編譯。 交叉編譯意味着在機器 2 (arch1) 上編譯程序,該程序將在機器 2 (arch2) 上運行,其中 arch1.= arch2。 交叉編譯的好庫是 clang,交叉編譯使用的好例子是 android 生態系統,你有用 c/c++ 編寫的代碼,可以在 arm32、arm64 上運行。 x86 甚至 x86_64。

在此處查看示例: https://www.96boards.org/documentation/guides/crosscompile/commandline.htmlZ5E056C500A1C4B6A7110B50D807BADE5xZ ://github.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM