如果您遵循简单的configure
- > make
- >用于从源代码编译python的make install
进程,最终会得到一个非常大的安装,其中包含许多功能python环境不需要的文件。例如:所有.py
文件都保留在安装中(不仅仅是.pyc
或.pyo
文件),所有单元测试都会在lib文件夹中的每个库中进行,手册页是包括在内等。
在安装过程中是否有一个罐装方式(make选项?)忽略或删除“不必要的”文件,这样你就可以得到一个极简主义但功能齐全的python发行版?
如果没有预先制作的程序,哪些文件可以被删除,同时确定安装仍然可以在它安装的机器上运行?
答案 0 :(得分: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
MIN_*
变量从README.Debian.in
解析出来,当然这也是包README
的两倍,但也因此成为要包含模块的权限。
有趣的东西,我从来没有看过这个。至于你的问题,答案确实似乎不是,Python中没有真正的最小目标,但也许你可以采用相同的方法来实现你的目标。
答案 1 :(得分:5)
没有这样的选择 - 保持安装是一件好事(也许你可以手动切断测试文件)。 .py文件可以方便调试。除此之外:你真的想保持完整的安装。正如我们在各种Linux发行版上看到的那样处理剥离的Python安装通常是 * 中的一个难题。
答案 2 :(得分:1)
这些选项(如果它们存在于软件本身中)通常可以在configure
脚本中找到。检查configure -h
。
或者,如果存在名称相同的.py
文件,则可以尝试删除.pyc
个文件。您还可以删除.pyo
个文件。在我的Python 2.7.3安装中删除.py
和.pyo
文件将在/usr/local/lib/python2.7
下保存72396 kB(大约47%)。
答案 3 :(得分:0)
注意Python有内置模块,Python可执行文件是独立的,可以正常工作。您可以删除任何不需要的模块,这取决于您(或其他人),以确定哪些模块不会被要求。但请注意每个模块的依赖关系。
有些模块是内置的,所以总是存在。要获取内置模块列表,请转储sys.builtin_module_names。
的内容Ex,使用独立的Python 3.4.1可执行文件,在Ubuntu平台上编译:
>>> import sys
>>> for m in sys.builtin_module_names: print(m)
这告诉:
_ast
_codecs
_collections
_functools
_imp
_io
_locale
_operator
_sre
_stat
_string
_symtable
_thread
_tracemalloc
_warnings
_weakref
atexit
builtins
errno
faulthandler
gc
itertools
marshal
posix
pwd
signal
sys
xxsubtype
zipimport
有私人模块,还有13个公共模块。 All都是在Python可执行文件中构建的,独立。
如前所述,您可以删除所有*.pyc
和*.pyo
文件,因为要使用的模块都是必需的,是*.py
个文件。