簡體   English   中英

如何最小化嵌入式系統的 Python 3.6 運行時?

[英]How to minimize the Python 3.6 runtime for an embedded system?

我們做了一個ARM 9嵌入式系統,Linux等。最近有客戶要求我們為他們預裝Python 3。 我們制定了交叉編譯(QEMU 真的很神奇),但最終的構建是 177Mb,所以這是不行的。 這里最好的計划是什么——我們可以去掉 Doc 目錄,也許還有“構建”目錄? 我看到 Lib 目錄是 54Mb - 這是選擇客戶需要什么庫的情況嗎? 我們對 Python 知之甚少。 明確地說,我看到很多關於打包 Python 應用程序的建議——這不是我們正在做的——我們正在打包 Python 運行時。 謝謝! (目錄大小匯總如下)

 1.6M ./Python-3.6.0/Mac 760K ./Python-3.6.0/Include 17M ./Python-3.6.0/build 5.4M ./Python-3.6.0/Python 8.0K ./Python-3.6.0/.github 54M ./Python-3.6.0/Lib 2.7M ./Python-3.6.0/PC 2.7M ./Python-3.6.0/Tools 6.9M ./Python-3.6.0/Objects 11M ./Python-3.6.0/Doc 824K ./Python-3.6.0/Parser 20M ./Python-3.6.0/Modules 15M ./Python-3.6.0/Programs 620K ./Python-3.6.0/PCbuild 12K ./Python-3.6.0/Grammar 5.8M ./Python-3.6.0/Misc 161M ./Python-3.6.0 177M .

滿足您要求的可能選擇可能是 MicroPython,它是 PYthon 3 的實現,它由 Python 標准庫的一小部分組成。 根據他們的網站,它針對微控制器和受限環境: https : //micropython.org/

根據他們的描述,MicroPython 的目標是盡可能與普通 Python 兼容,以允許您輕松地將代碼從桌面傳輸到微控制器或嵌入式系統。 然而,它足夠緊湊,可以在僅 256k 的代碼空間和 16k 的 RAM 內運行。

有一個在線項目將 MicroPyton 的實現放在基於 Arm Cortex M4 的嵌入式系統中也可能會有所幫助: https : //github.com/micropython/micropython/wiki

我們刪除了以下內容:

  1. python3-測試
  2. libpython3.8-staticdev
  3. python3-*src
  4. python3-*dbg
  5. python3-*開發
  6. 所有.pyc文件(安裝后可以重新編譯)

我們選擇不進行以下操作:

  1. 刪除“不需要的”模塊:可能會破壞 3rd 方庫的依賴關系
  2. UPX 二進制打包程序:壓縮的安裝介質大小相同,因此這只會減慢啟動速度
  3. python 源文件縮小:產生了損壞的代碼,正如我們在使用python3 -m compileall .重新生成.pyc時發現的那樣python3 -m compileall .

暫無
暫無

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

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