Python 除了柏油球,我应该为PyPI准备鸡蛋和拉链吗?

Python 除了柏油球,我应该为PyPI准备鸡蛋和拉链吗?,python,pip,setuptools,pypi,Python,Pip,Setuptools,Pypi,我正在使用setuptools等为PyPI准备第一个包发行版。我已经让源发行版(.tar.gz)运行良好,现在我想知道是否应该提供任何其他格式,如.zip和.egg 在随机浏览PyPI时,我注意到一些项目为不同的Python版本以及源tarball提供了鸡蛋。我注意到有一两个以.zip格式提供了源代码分发 将哪些格式上载到PyPI的最佳实践是什么?各种安装程序(easy_install,pip)是否对使用哪种程序有偏好?如果您没有构建C扩展,只需以tar.gz格式发送源tarball即可。它可以

我正在使用setuptools等为PyPI准备第一个包发行版。我已经让源发行版(.tar.gz)运行良好,现在我想知道是否应该提供任何其他格式,如.zip和.egg

在随机浏览PyPI时,我注意到一些项目为不同的Python版本以及源tarball提供了鸡蛋。我注意到有一两个以.zip格式提供了源代码分发


将哪些格式上载到PyPI的最佳实践是什么?各种安装程序(easy_install,pip)是否对使用哪种程序有偏好?

如果您没有构建C扩展,只需以tar.gz格式发送源tarball即可。它可以安装在所有平台上。只有当您构建C扩展并且您的软件在Windows上运行时,二进制egg(可通过easy_install而不是pip安装)才是必需的,因为人们的机器上很少有C编译器

当前的最佳实践是添加源分布(sdist)和控制盘(bdist\U控制盘)。例如,看看numpy做了什么

如果你有东西要建造,你可以通过提供轮子来为你的用户省去很多麻烦。比较numpy的安装(有轮子和没有轮子)(例如,通过安装一个他们没有为您的python版本创建轮子的版本):没有轮子,您需要安装Fortran编译器和Blas库并可用。没有它,你甚至不必知道numpy使用Fortran

如果您有,wheel格式仍然有一个优点,即只需将代码复制到正确的位置即可安装。不过,我不确定这一优势有多大


另请参见:

Sweet!非常感谢霍尔格:)