分发 Python 模块

电子邮箱

distutils-sig@python.org

作为一个流行的开源开发项目,Python拥有一个活跃的贡献者和用户支持社区,这些社区也可以让他们的软件可供其他Python开发人员在开源许可条款下使用。

这允许Python用户有效地共享和协作,从其他人已经创建的解决方案中受益于常见(有时甚至是罕见的)问题,以及可以提供他们自己的解决方案。

本指南涵盖了分发部分的流程。有关安装其他Python项目的指南,请参阅 安装指南

备注

对于企业和其他机构用户,请注意许多组织都有自己的政策来使用和贡献开源软件。在使用Python提供的分发和安装工具时,请考虑这些政策。

关键术语

  • the Python Package Index is a public repository of open source licensed packages made available for use by other Python users

  • Python Packaging Authority 是负责标准打包工具以及相关元数据和文件格式标准维护与改进的开发人员和文档作者团队。 他们基于 GitHubBitbucket 这两个平台维护着各种工具、文档和问题追踪系统。

  • distutils is the original build and distribution system first added to the Python standard library in 1998. While direct use of distutils is being phased out, it still laid the foundation for the current packaging and distribution infrastructure, and it not only remains part of the standard library, but its name lives on in other ways (such as the name of the mailing list used to coordinate Python packaging standards development).

  • setuptools is a (largely) drop-in replacement for distutils first published in 2004. Its most notable addition over the unmodified distutils tools was the ability to declare dependencies on other packages. It is currently recommended as a more regularly updated alternative to distutils that offers consistent support for more recent packaging standards across a wide range of Python versions.

  • wheel (in this context) is a project that adds the bdist_wheel command to distutils/setuptools. This produces a cross platform binary packaging format (called “wheels” or “wheel files” and defined in PEP 427) that allows Python libraries, even those including binary extensions, to be installed on a system without needing to be built locally.

开源许可与协作

在世界上大多数地方,软件自动受版权保护。这意味着其他开发人员需要明确的权限来复制,使用,修改和重新分发软件。

开源许可是一种以相对一致的方式明确授予此类权限的方式,允许开发人员通过为各种问题免费提供通用解决方案来有效地共享和协作。这使得许多开发人员可以将更多时间用于关注他们特定情况相对独特的问题。

Python提供的分发工具旨在使开发人员选择开源时,可以合理地直接将其自己的贡献回馈到该公共软件池。

无论该软件是否作为开源软件发布,相同的分发工具也可用于在组织内分发软件。

安装相关工具

标准库不包括支持现代Python打包标准的构建工具,因为核心开发团队已经发现,即使在旧版本的Python上,使用一致工作的标准工具也很重要。

可以通过在命令行调用 pip 模块来安装当前推荐的构建和分发工具:

python -m pip install setuptools wheel twine

备注

For POSIX users (including macOS and Linux users), these instructions assume the use of a virtual environment.

对于Windows用户,这些说明假定在安装Python时选择了调整系统PATH环境变量的选项。

Python 打包用户指南包含有关 当前推荐工具的 的更多详细信息。

阅读 Python 打包用户指南

“Python 打包用户指南”介绍了创建和发布项目所涉及的各个关键步骤和元素:

我该如何…?

这是一些常见任务的快速解答或相关链接。

…为我的项目选择一个名字?

这不是一个简单的主题,但这里有一些提示:

  • check the Python Package Index to see if the name is already in use

  • 检查流行的托管网站如 GitHub,Bitbucket 等等,看是否已有一个该名称的项目

  • 检查您正在考虑的名称在网络搜索中出现的内容

  • 避免使用特别常见的单词,尤其是具有多重含义的单词,因为它们会使用户在搜索时难以找到您的软件

…创建和分发二进制扩展?

这实际上是一个非常复杂的主题,根据您的目标,可以提供各种替代方案。 有关更多信息和建议,请参阅 Python 打包用户指南。