PEP 206 – Python 高级库
- 作者:
- A.M. Kuchling <amk at amk.ca>
- 状态:
- 已撤回
- 类型:
- 信息性
- 创建日期:
- 2000年7月14日
- 发布历史:
引言
本 PEP 描述了 Python 高级库,这是一个高质量且常用第三方扩展模块的集合。
包含电池的哲学
Python 源代码分发长期以来一直秉持“包含电池”的哲学——拥有一个丰富多样的标准库,可以立即使用,而无需用户下载单独的包。这使得 Python 语言在许多项目中占据优势。
然而,标准库模块并非总是完成任务的最佳选择。一些库模块是匆忙的修改(例如 calendar
、commands
),一些设计不佳,现在几乎无法修复(cgi
),还有一些已被其他更完整的模块淘汰(binascii
提供了与 binhex
、uu
、base64
模块相同的功能)。本 PEP 描述了一系列第三方模块,它们使 Python 在各种应用领域更具竞争力,构成了 Python 高级库。
可交付成果是一组脚本,它们将检索、构建和安装特定应用领域的包。Python 包索引现在包含足够的信息,可以自动查找和下载包,因此实施此功能的时机已经成熟。
目前,本文档不建议从标准库中删除被第三方模块取代的模块。这很难做到,因为它涉及到许多向后兼容性问题,所以现在不值得费心。
请提出其他感兴趣的领域。
领域:Web 任务
XML 解析:ElementTree + SAX。
URL 检索:libcurl?其他可能性?
HTML 解析:mxTidy?HTMLParser?
异步网络 I/O:Twisted
RDF 解析器:???
HTTP 服务:???
HTTP Cookie 处理:???
Web 框架:WSGI 网关,也许?Paste?
图形:PIL, Chaco。
领域:科学编程
数值:Numeric, SciPy
图形:PIL, Chaco。
领域:应用程序开发
GUI 工具包:???
图形:Reportlab 用于 PDF 生成。
领域:教育
图形:PyGame
受 GNU 通用公共许可证覆盖的软件
这些第三方模块中的一些受 GNU 通用公共许可证和 GNU 宽通用公共许可证的保护。根据许可证的“单纯聚合”条款,提供脚本来下载和安装此类包,甚至将所有这些包组装成一个单独的 tarball 或 CD-ROM,不应引起 GPL 方面的任何困难。
未解决的问题
还有哪些应用领域很重要?
这应该只是一组 Ubuntu 或 Debian 包吗?编译 PyGame 等东西可能非常复杂,可能难以自动化。
致谢
本 PEP 基于 Moshe Zadka 早期的一份名为“2.0 包含电池”的草案 PEP。
来源:https://github.com/python/peps/blob/main/peps/pep-0206.rst