分發 Python 模塊?

電子郵箱

distutils-sig@python.org

作為一個流行的開源開發項目,Python擁有一個活躍的貢獻者和用戶支持社區,這些社區也可以讓他們的軟件可供其他Python開發人員在開源許可條款下使用。

這允許Python用戶有效地共享和協作,從其他人已經創建的解決方案中受益于常見(有時甚至是罕見的)問題,以及可以提供他們自己的解決方案。

本指南涵蓋了分發部分的流程。有關安裝其他Python項目的指南,請參閱 安裝指南

注解

對于企業和其他機構用戶,請注意許多組織都有自己的政策來使用和貢獻開源軟件。在使用Python提供的分發和安裝工具時,請考慮這些政策。

關鍵術語?

  • 是一個開源許可的軟件包公共存儲庫,可供所有 Python 用戶使用。

  •  是負責標準打包工具以及相關元數據和文件格式標準維護與改進的開發人員和文檔作者團隊。 他們基于 和 這兩個平臺維護著各種工具、文檔和問題追蹤系統。

  • distutils 是 1998 年首次添加到 Python 標準庫的原始構建和分發系統。 雖然直接使用 distutils 正在逐步淘汰,但它仍然為當前的打包和分發基礎架構奠定了基礎它不僅仍然是標準庫的一部分,而且它的名稱還以其他方式存在(例如用于協調 Python 打包標準開發的郵件列表的名稱)。

  • (在很大程度上)是作為 distutils 的取代者,于 2004 年首次發布。 它對未經修改的 distutils 工具最重要的補充是能夠聲明對其他包的依賴。 目前它被推薦用來替代 distutils,其更新更為頻繁,在更為多樣的 Python 版本之上為最新的打包標準提供持續支持。

  • (在此上下文中)是一個將 bdist_wheel 命令添加到 distutils/ 的項目。這產生了一個跨平臺的二進制打包格式(稱為“輪子”或“輪子文件”,并在 中定義),它允許在系統上安裝Python庫,甚至包括二進制擴展的庫,而不需在本地進行構建。

開源許可與協作?

在世界上大多數地方,軟件自動受版權保護。這意味著其他開發人員需要明確的權限來復制,使用,修改和重新分發軟件。

開源許可是一種以相對一致的方式明確授予此類權限的方式,允許開發人員通過為各種問題免費提供通用解決方案來有效地共享和協作。這使得許多開發人員可以將更多時間用于關注他們特定情況相對獨特的問題。

Python提供的分發工具旨在使開發人員選擇開源時,可以合理地直接將其自己的貢獻回饋到該公共軟件池。

無論該軟件是否作為開源軟件發布,相同的分發工具也可用于在組織內分發軟件。

安裝相關工具?

標準庫不包括支持現代Python打包標準的構建工具,因為核心開發團隊已經發現,即使在舊版本的Python上,使用一致工作的標準工具也很重要。

可以通過在命令行調用 pip 模塊來安裝當前推薦的構建和分發工具:

python -m pip install setuptools wheel twine

注解

對于POSIX用戶(包括Mac OS X和Linux用戶),這些說明假定使用 virtual environment

對于Windows用戶,這些說明假定在安裝Python時選擇了調整系統PATH環境變量的選項。

Python 打包用戶指南包含有關 的更多詳細信息。

閱讀 Python 打包用戶指南?

“Python 打包用戶指南”介紹了創建和發布項目所涉及的各個關鍵步驟和元素:

我該如何...??

這是一些常見任務的快速解答或相關鏈接。

...為我的項目選擇一個名字??

這不是一個簡單的主題,但這里有一些提示:

  • 檢查Python Packaging Index以查看該名稱是否已被使用

  • 檢查流行的托管網站如 GitHub,Bitbucket 等等,看是否已有一個該名稱的項目

  • 檢查您正在考慮的名稱在網絡搜索中出現的內容

  • 避免使用特別常見的單詞,尤其是具有多重含義的單詞,因為它們會使用戶在搜索時難以找到您的軟件

...創建和分發二進制擴展??

這實際上是一個非常復雜的主題,根據您的目標,可以提供各種替代方案。 有關更多信息和建議,請參閱 Python 打包用戶指南。

參見