2011-06-06 43 views
3

我在PyPi上测试了我的软件包。为什么不在pyPI上使用setup.py元数据?

来自setup.py的元信息(例如主页,类别等)出现在project's PyPi page上。

后来我更新了项目。我在setup.py中改变的唯一的东西就是版本号。

更新一如既往,永远不要相信说这些的人。我从setuptools改为distutils! Cargo Cult编程 - 我刚刚复制了另一个项目所做的工作。抱歉。

但是project's PyPi page中的下一个版本没有元信息。

我在努力解决我是如何破坏它的;我发现PyPi相当重要,所以我确信它就是我。 这一次,我在一个相当新鲜的Windows上安装了Python 2.7.1(之前我曾经使用Python 2.6.x)

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

我应该在哪里查看setup.py文件中的元信息不再上传的原因?

回答

3

运行在你的setup.py下面的命令应该可以解决问题:

$ python setup.py register 

理想情况下,你想同时运行上传的寄存器命令。发布任何软件包(sdist,注册,上传)时,我通常至少使用三条命令。以下将对PyPI进行典型发布:

$ python setup.py sdist register upload 

本文的其余部分简要介绍了这些命令的作用。

sdist命令是构建源代码发布的少数build命令之一。您已经上传了.zip文件,您可能已经熟悉它了。类似的命令是bdist,它建立二进制分布。

分发(或包)元数据与构建的分发分开发送。 setuptools'上传命令将上传您的项目构建(例如myproject-0.0.zip)。应使用寄存器命令来更新元数据信息。注册命令将PKGINFO(或egg_info)以其理解的格式发送给PyPI。

+0

延迟接受,对不起!这被作为低优先级而下降。立即注册解决问题。谢谢。 – Oddthinking 2012-01-10 11:54:23

1

这很难回答。你能给我们你使用的命令行吗?你的setup.py使用distutils还是setuptools?你在两次之间更改了pydistutils.cfg或.pypirc文件吗?

+0

我终于回到了这个细节。你确实发现了这个问题 - 我已经从setuptools转移到distutils了!很明显,我做了一些剪切粘贴的编程!然而,注册命令解决了它 - 是工具之间的区别?不知道。准备好让这个去吧。 – Oddthinking 2012-01-10 11:53:29

+0

奇怪,因为setuptools不会执行任何特定的元数据操作,也不会更改注册命令的行为。无论如何,你的问题现在已经解决了,如果你稍后再遇到它并确认那时我们会调查一个错误。欢呼声 – 2012-01-14 02:58:00

+0

谢谢。我非常乐意接受这个问题作为PEBKAC问题。 – Oddthinking 2012-01-14 06:15:14

相关问题