Linux 如何最小化嵌入式系统的Python 3.6运行时?
我们生产ARM9嵌入式系统、Linux等。最近一位客户要求我们为他们预安装Python 3。我们设计了交叉编译(QEMU真的很神奇),但是最终的构建是177Mb,所以这是不可能的。这里最好的计划是什么?我们可以省去Doc目录,也许还有“build”目录?我看到Lib目录是54Mb——这是一个选择客户需要什么Lib的案例吗?我们对Python知之甚少。要明确的是,我看到了很多关于打包Python应用程序的建议——这不是我们正在做的——我们正在打包Python运行时。谢谢(目录大小摘要如下)Linux 如何最小化嵌入式系统的Python 3.6运行时?,linux,python-3.x,embedded,runtime,Linux,Python 3.x,Embedded,Runtime,我们生产ARM9嵌入式系统、Linux等。最近一位客户要求我们为他们预安装Python 3。我们设计了交叉编译(QEMU真的很神奇),但是最终的构建是177Mb,所以这是不可能的。这里最好的计划是什么?我们可以省去Doc目录,也许还有“build”目录?我看到Lib目录是54Mb——这是一个选择客户需要什么Lib的案例吗?我们对Python知之甚少。要明确的是,我看到了很多关于打包Python应用程序的建议——这不是我们正在做的——我们正在打包Python运行时。谢谢(目录大小摘要如下) 满足您
满足您的需求的一个可能的选择可能是MicroPython,它是Python3的一个实现,Python3由PYthon标准库的一小部分组成。根据他们的网站,它的目标是微控制器和受限环境: 根据他们的描述,MicroPython的目标是尽可能与普通Python兼容,以允许您轻松地将代码从桌面传输到微控制器或嵌入式系统。但它足够紧凑,只需256k的代码空间和16k的RAM就可以安装和运行 有一个在线项目将MicroPyton的一个实现置于基于Arm Cortex M4的embeeded系统中,这也可能证明是有帮助的:
我们删除了以下内容:
.pyc
文件(安装后可以重新编译)python3-m编译器重新生成.pyc
时发现了这一点。
请参阅Alex Martelli对这个问题的回答:谢谢-我见过这样的答案-但是让运行时特定于特定的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 .