Anu*_*sha 5 python pypi python-packaging twine
我完成了将包上传到https://test.pypi.org/的教程,并且成功地做到了这一点。
但是,会在目录中$python setup.py sdist bdist_wheel生成一个.whl文件和一个tar.gz文件dist/。twine允许仅上传.whl或tar.gz文件或两者。我看到https://pypi.org/上的许多存储库都上传了这两种格式。
我想了解什么是最佳实践。一种格式优于另一种格式吗?如果.whl文件足以分发我的代码,我tar.gz也应该上传文件吗?或者还有什么我在这里完全想念的吗?
最佳实践是两者都提供。
.whl为能够使用该发行版的用户提供的“内置发行版”( )。这可以节省安装时间,因为“构建的发行版”是预先构建的,可以直接放入用户计算机上,无需任何编译步骤或无需执行setup.py。给定版本可能有多个构建的发行版 - 一旦您开始在发行版中包含已编译的二进制文件,它们就会变得特定于平台(例如,请参阅https://pypi.org/project/tensorflow/#files )
“源发行版”( .tar.gz) 本质上是任何无法使用您构建的发行版的用户的后备方案。源发行版不是“构建”的,这意味着它们可能需要编译才能安装。至少,它们需要执行构建后端(对于大多数项目,这是调用setup.pywithsetuptools作为构建后端)。任何安装程序都应该能够从源代码安装。此外,源代码发行版使想要审核源代码的用户变得更容易(尽管对于构建的发行版来说这也是可能的)。
对于大多数 Python 项目,将“源发行版”转变为“构建发行版”会产生一个纯 Python 轮(由none-any文件名中的 表示,如projectname-1.2.3-py2.py3-none-any.whl)。这和源代码发行版之间没有太大区别,但上传两者仍然是最佳实践。
| 归档时间: |
|
| 查看次数: |
955 次 |
| 最近记录: |