第5章 编写一个包
本章重点介绍编写并发布Python包的可重复过程。其目的是:
- 在开始实际工作之前,缩短设置所有内容所需要的时间。
- 提供编写包的标准化方法。
- 简化测试驱动开发方法的使用。
- 使发布过程更加简单。
本章包括以下4部分内容:
- 所有包的通用模式(common pattern),描述所有Python包之间的相似之处,以及
distutils
和setuptools
如何发挥核心作用。 - 什么是命名空间包(namespace packages),以及它为什么有用。
- 在Python包索引(Python Package Index,PyPI)中如何注册并上传包,重点强调安全性和常见错误。
- 独立可执行文件(stand-alone executables),作为将Python应用打包并分发的替代方法。
5.1 创建一个包
Python打包一开始可能有些难以理解。其主要原因是不了解创建Python包的正确工具。不管怎样,一旦创建了第一个包,你就会发现它并不像看起来那么难。此外,熟悉正确且最先进的打包工具也很有帮助。
你即使对将代码开源分发不感兴趣,但也应该知道如何创建包。知道如何创建自己的包,可以让你深入了解打包生态系统,并且有助于你使用PyPI上可用的第三方代码。
此外,将你的闭源项目或其组件变成源代码发行包,有助于你在不同的环境中部署代码。下一章将会更详细地描述在代码部署过程中使用Python打包生态系统的优点。本章我们将重点介绍创建这些发行版的正确工具和技术。
5.1.1 Python打包工具的混乱状态
Python打包曾经在很长一段时间内处于混乱不堪的状态,人们花了很多年才使得这一主题重新变得有组织。一切都从1998年引入的distutils
包开始,随后在2003年setuptools ...
Get Python高级编程(第2版) now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.