我正在尝试向pypi发布新版本的软件包。这是使用python 2.7,我目前的目标是使用pythons 2.6 / 2.7进行消费。
有问题的软件包的当前版本是0.0.2-1。 (-1
是我在某处读到的构建标记约定;我正在将此做法更改为使用b
beta
,这更相关。)
基本上,如果我有version
(在setup()
调用中)和构建标记(来自setup.cfg
)的组合,那就是pypi上已有的当前版本以外的任何内容register
和upload
命令失败:
ethan@walrus:~/source/python-mandrel$ python setup.py register
running register
running egg_info
writing requirements to mandrel.egg-info/requires.txt
writing mandrel.egg-info/PKG-INFO
writing top-level names to mandrel.egg-info/top_level.txt
writing dependency_links to mandrel.egg-info/dependency_links.txt
writing entry points to mandrel.egg-info/entry_points.txt
reading manifest file 'mandrel.egg-info/SOURCES.txt'
writing manifest file 'mandrel.egg-info/SOURCES.txt'
running check
Registering mandrel to http://pypi.python.org/pypi
Server response (500): There's been a problem with your request
这是0.0.3
的版本和b
的构建标记。
但是如果我应用这个补丁:
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,3 +1,3 @@
[egg_info]
-tag_build = b
+tag_build = -1
diff --git a/setup.py b/setup.py
index 14761cf..beb8278 100644
--- a/setup.py
+++ b/setup.py
@@ -3,7 +3,7 @@ import os
setup(
name = "mandrel",
- version = "0.0.3",
+ version = "0.0.2",
author = "Ethan Rowe",
author_email = "ethan@the-rowes.com",
description = ("Provides bootstrapping for sane configuration management"),
然后register
电话(大概是upload
)会成功:
ethan@walrus:~/source/python-mandrel$ python setup.py register
running register
...
running check
Registering mandrel to http://pypi.python.org/pypi
Server response (200): OK
如果我将构建代码更改为-2
,则register
调用将再次失败。这表明失败与pypi尚未知道的任何完整版本字符串有关。
不幸的是,当服务器以500代码响应时,使用--show-response
时upload
选项无效。 distutils
'upload
命令仅报告服务器遇到错误的事实,没有任何用处可用。
有关我可能采取哪些措施进行问题排查的建议?
答案 0 :(得分:2)
我也遇到500错误,问题来自于他们的问题:https://sourceforge.net/tracker/index.php?func=detail&aid=3573564&group_id=66150&atid=513503。
我使用pdb调试它。显然,show-response选项并没有真正以有用的方式实现。我在我的Python dist中放了一个“import pdb; pdb.set_trace()”,在第291行的distutils/command/register.py
中,我的发布版本在方法post_to_server()
内。我在那里做了“print req.data”,然后通过它“下一步”,以便查看异常catch中安装的响应。