如何从源代码编译python并获得干净/最小的安装?

Rus*_*uss 6 python installation makefile

如果您按照简单的configure- > make- > make install进程从源代码编译python,最终会得到一个非常大的安装,其中包含许多功能python环境不需要的文件.例如:所有.py文件都保留在安装中(不仅仅是文件.pyc.pyo文件),所有单元测试都在lib文件夹中的每个库中进行,包括手册页等.

是否有一种固定方式(make选项?)在安装过程中忽略或删除"不必要的"文件,这样你就可以得到一个极简主义但功能齐全的python发行版?

如果没有预先制作的程序,哪些文件可以被删除,同时确定安装仍然可以在它安装的机器上运行?

zig*_*igg 9

查看Debian的python2.7-minimal包(apt-get source python2.7-minimal)可能是有益的.如有疑问,请随时查看其他人,特别是专家,正在做什么......

debian/rules那里:

: # Move the binary and the minimal libraries into $(p_min).
dh_installdirs -p$(p_min) \
        etc/$(PVER) \
        usr/bin \
        usr/include/$(PVER) \
        usr/share/man/man1 \
        $(scriptdir)/lib-dynload \
        $(scriptdir)/config
DH_COMPAT=2 dh_movefiles -p$(p_min) --sourcedir=$(d) \
        usr/bin/python$(VER) \
        usr/share/man/man1/python$(VER).1 \
        $(foreach i,$(MIN_MODS),$(scriptdir)/$(i).py) \
        $(foreach i,$(MIN_PACKAGES),$(scriptdir)/$(i)) \
        $(foreach i,$(MIN_ENCODINGS),$(scriptdir)/$(i)) \
        $(scriptdir)/config/Makefile \
        usr/include/$(PVER)/pyconfig.h \
        $(scriptdir)/site.py
Run Code Online (Sandbox Code Playgroud)

MIN_*变量解析出从README.Debian.in,这当然兼作包README也因此变成上哪些模块包括权限.

有趣的东西,我从来没有看过这个.至于你的问题,答案看起来似乎没有,Python中没有真正的最小目标,但也许你可以采用相同的方法来实现你的目标.


小智 5

没有这样的选择 - 保持安装是一件好事(也许你可以手动切断测试文件)..py文件可以方便调试.除此之外:你真的想保持完整的安装.正如我们在各种Linux发行版中看到的那样处理剥离的Python安装通常是*的痛苦.

  • 虽然我普遍同意,但在某些情况下,驱动器空间是最小的,额外的 40 MB 左右(我忘记了手动剥离后到底有多少)确实需要消除。例如:嵌入式系统,或类似 [TinyCore Linux](http://tinycorelinux.com/) 的系统(整个操作系统 < 10 MB)。由于诸如“libinstall”之类的选项已经埋藏在 make 文件中,因此拥有一个删除不必要项目的组合似乎应该存在。 (2认同)