预计阅读本页时间:-
4.2 使用pbr打包
现在我已经用了好几页让你对如此多的分发工具更加迷糊,接下来让我们谈谈另一个工具,也是一个不同的选择,名为pbr。
你可能已经开发过一些包并试图去写setup.py,或者从其他项目复制一个,或者自己啃文档。这不是一个清晰明确的任务,如同我们在前面讨论过的,选择什么工具通常是第一个障碍。本节将介绍pbr,一个应该用来开发你的下一个setup.py的工具,以便你不用再在这部分浪费时间。
广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元
pbr是指Python Build Reasonableness。这个项目已经在OpenStack(http://openstack.org)内部启动,并围绕setuptools开发了一系列用来辅助包的安装和部署的工具。它从distutils2获得了灵感,利用setup.cfg文件来描述包的用途。
pbr使用的setup.py文件类似下面这样:
import setuptools
setuptools.setup(setup_requires=['pbr'], pbr=True)
就两行代码,非常简单。实际上安装所需要的元数据存储在setup.cfg文件中:
[metadata]
name = foobar
author = Dave Null
author-email = foobar@example.org
summary = Package doing nifty stuff
license = MIT
description-file =
README.rst
home-page = http://pypi.python.org/pypi/foobar
requires-python = >=2.6
classifier =
Development Status :: 4 - Beta
Environment :: Console
Intended Audience :: Developers
Intended Audience :: Information Technology
License :: OSI Approved :: Apache Software License
Operating System :: OS Independent
Programming Language :: Python
[files]
packages =
foobar
看着眼熟?没错,处理的方式都是直接受distutils2的启发。
pbr还提供了其他一些功能,例如:
- 基于requirements.txt做自动依赖安装;
- 利用Sphinx实现文档自动化;
- 基于git history自动生成AUTHORS和ChangeLog文件;
- 针对git自动创建文件列表;
- 基于git tags的版本管理。
所有这些对开发人员来说只有一点儿或完全没有任何额外工作要做。pbr目前维护良好并且开发很活跃,所以如果计划分发软件的话,应该认真考虑一下使用pbr。