Distlib 是一个库,实现了与Python软件打包和分发相关的底层函数。它的目的是作为第三方打包工具的基础。文档可在
https://distlib.readthedocs.io/
Distlib 目前提供以下功能:
- 包
distlib.database,它实现了已安装发行版的数据库,如PEP 376所定义,以及发行版依赖图逻辑。还支持未安装的发行版(即在PyPI等索引上注册了元数据的发行版),包括扫描依赖项和构建依赖图的能力。 - 包
distlib.index,它实现了一个接口,用于在索引上执行操作,例如注册项目、上传发行版或上传文档。支持验证SSL连接(带域名匹配)以及使用GnuPG签名/验证包。 - 包
distlib.metadata,它实现了PEP 643、PEP 566、PEP 345、PEP 314和PEP 241定义的发行版元数据。 - 包
distlib.markers,它实现了PEP 508定义的依赖环境标记。 - 包
distlib.manifest,它实现了用于源发行版打包的文件列表。 - 包
distlib.locators,它允许查找发行版,无论是在PyPI(XML-RPC或通过“simple”接口)、本地目录还是其他来源。 - 包
distlib.resources,它允许访问存储在Python包中的数据文件,这些文件既可以在文件系统中,也可以在.zip文件中。 - 包
distlib.scripts,它允许安装脚本,并能调整shebang行,支持原生的Windows可执行启动器。 - 包
distlib.version,它实现了PEP 440定义的版本说明符,但也支持处理“旧版”版本和语义化版本。 - 包
distlib.wheel,它支持为二进制发行版构建和安装Wheel格式(请参阅PEP 427)。 - 包
distlib.util,它包含在打包中有用的杂项函数和类,但不能很好地归入distlib的其他包中。该包实现了增强的globbing功能,例如能够在模式中使用**来指定递归进入子目录。
Distlib 旨在用于 Python 2.7 和 3.6 或更高版本,pypy-2.7 和 pypy3(在 Linux、Windows 和 macOS 上),并且已在这些环境中进行了测试。
该项目在其开发中已达到成熟状态:拥有全面的测试套件,并在 Windows、Ubuntu 和 macOS 上进行了实际运行。该项目已被pip和caniusepython3等知名项目使用。
该项目已从 Mercurial 迁移到 Git,从 BitBucket 迁移到 GitHub,尽管所有重要信息都已在迁移过程中保留,但问题和问题评论中的一些提交引用可能已失效。
所有在 distlib 项目的代码库、问题跟踪器、聊天室和邮件列表中进行互动的人员都应遵循PyPA行为准则。