获取不带(选定)电池的Python

获取不带(选定)电池的Python,python,distribution,Python,Distribution,我非常喜欢Python的“含电池”理念,但现在我必须执行一个只有核心功能的超薄安装,以及一些我想逐一选择的其他功能 可以只下载带有选定模块的Python吗?AFAIK不可能只下载带有选定模块的Python,但是在安装后,您可以删除您不需要的所有内容(读取:库)(永远不会使用JSON?Gone!等)。正常安装Python。打开python解释器,导入一些您认为不需要的东西 import io, optparse, tarfile 然后模块的str表示在其中有其路径 >>> ta

我非常喜欢Python的“含电池”理念,但现在我必须执行一个只有核心功能的超薄安装,以及一些我想逐一选择的其他功能


可以只下载带有选定模块的Python吗?

AFAIK不可能只下载带有选定模块的Python,但是在安装后,您可以删除您不需要的所有内容(读取:库)(永远不会使用JSON?Gone!等)。

正常安装Python。打开python解释器,导入一些您认为不需要的东西

import io, optparse, tarfile
然后模块的
str
表示在其中有其路径

>>> tarfile
<module 'tarfile' from '/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/tarfile.py'>
>>tarfile
您只需进入并删除安装中不需要的任何
.py
文件即可

显然,这是危险的,因为您并不真正了解Python模块的内部依赖关系

我发现有一些我不使用的文件夹/库(test、docs、tcl)占用了好几MB的时间

不包括测试,并提供安装时选项以排除文档和PyWin32(虽然不适用于tcl/tkinter,但您可以在安装后安全地将其删除)

或者,您可以使用为应用程序创建自定义安装程序。

查看或类似项目。他们基本上将一个Python脚本及其所有依赖项打包在一个可执行文件中。看来这对你来说是件好事


如果我记得py2exe中还有一个独立的模块,它递归地分析Python模块的依赖关系,但是我现在找不到它。

您可以从开始,然后添加您需要的内容。但是,TinyPy似乎没有维护。

大多数核心语言功能都来自标准库。为什么要省略它们呢?如果不想,那么可以很容易地正常安装,然后删除所有不需要的库。(编辑@jathanism:请定义“核心语言特性”,因为在我的书中,根据定义,这不是在图书馆中),我必须制作一个小软件包,通过电子邮件发送或下载。我看到有一些我不使用的文件夹/lib(test、docs、tcl)占用了好几MB。那么,一个非常MB的文件有多重要?除非你的目标是嵌入的东西,很可能根本不是。是的,现在看来这似乎毫无意义,但是当你想运行需要它的东西的时候,你会诅咒这个决定。现在还不清楚OP是否打算删除stdlib模块(而不是tkinter)。