为什么PyPI没有使用setup.py的元数据?

4

我在PyPi上发布了我的软件的beta版本。

setup.py中的元信息(例如主页、分类等)出现在项目的PyPi页面上。

稍后,我更新了这个项目。我在setup.py中唯一改变的是版本号。

更新像往常一样,不要相信那些说法。我从setuptools改为了distutils!这是一种仪式主义编程 - 我只是复制了另一个项目所做的事情。抱歉。

但是在项目的PyPi页面中的下一个版本没有元信息。

我正在努力找出我是如何破坏它的;我发现PyPi很难处理,所以我确定是我搞砸了。

这次,我使用了Python 2.7.1在一个相当新的Windows安装上(之前我使用的是Python 2.6.x)

我几乎肯定使用了不同的命令行上传它。(这次似乎需要签名和pgp安装,我不记得上次需要了)。

我应该去哪里查看为什么setup.py文件中的元信息不再被上传?

2个回答

4
在您的setup.py上运行以下命令即可解决此问题:
$ python setup.py register

理想情况下,您希望在上传时同时执行注册命令。我通常在发布任何软件包(sdist,register,upload)时使用至少三个命令。以下是向PyPI进行典型发布的步骤:

$ python setup.py sdist register upload

这篇文章的其余部分是对这些命令的简要解释。 sdist 命令是一些构建命令之一,用于构建源代码分发。你可能已经很熟悉它了,因为你上传了一个 .zip 文件。类似的命令是 bdist,用于构建二进制分发包。
分发(或包)元数据与构建的分发包分开发送。setuptools 的 upload 命令将上传你的项目构建文件(例如 myproject-0.0.zip)。register 命令应该用于更新元数据信息。register 命令以 PyPI 理解的格式将 PKGINFO(或 egg_info)发送到 PyPI。

1
抱歉延迟接受!这个问题因优先级低而被忽略了。立即注册解决了问题。谢谢。 - Oddthinking

1

这个问题很难回答。您能否提供您使用的命令行?您的setup.py使用distutils还是setuptools?在两次之间,您是否更改了pydistutils.cfg或.pypirc文件?


我终于又详细地看了一下这个问题。你确实发现了问题——我已经从setuptools转移到了distutils!显然,我进行了一些复制粘贴编程!不过,register命令解决了它——这是工具之间的区别吗?不知道。现在准备放手了。 - Oddthinking
奇怪的是,setuptools 并没有对元数据做任何特定的处理,也没有改变注册命令的行为。无论如何,你的问题现在已经解决了,如果以后再遇到并确认存在 bug,我们会立即进行调查。干杯! - merwok
谢谢。我非常高兴将此视为PEBKAC问题。 - Oddthinking

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接