Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在尝试发布新的软件包版本时,如何对pypi的500响应进行故障排除?_Python_Pypi - Fatal编程技术网

Python 在尝试发布新的软件包版本时,如何对pypi的500响应进行故障排除?

Python 在尝试发布新的软件包版本时,如何对pypi的500响应进行故障排除?,python,pypi,Python,Pypi,我正试图向pypi发布一个新版本的包。这是在使用Python2.7,我目前的目标是使用pythons 2.6/2.7 有关包的当前版本为0.0.2-1。(-1是我在某个地方读到的一个构建标记约定;我正在将此实践更改为b用于beta,这更相关。) 基本上,如果我有version(在setup()调用中)和build标记(来自setup.cfg)的组合,而不是pypi上已经存在的当前版本,那么register和upload命令都会失败: ethan@walrus:~/source/python-ma

我正试图向pypi发布一个新版本的包。这是在使用Python2.7,我目前的目标是使用pythons 2.6/2.7

有关包的当前版本为0.0.2-1。(
-1
是我在某个地方读到的一个构建标记约定;我正在将此实践更改为
b
用于
beta
,这更相关。)

基本上,如果我有
version
(在
setup()
调用中)和build标记(来自
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
如果我将build标记更改为
-2
,那么
register
调用将再次失败。这表明故障与pypi尚未知道的任何总版本字符串有关

不幸的是,当服务器以500代码响应时,使用
上传
时的
--show response
选项没有帮助
distutils
upload
命令仅报告服务器发生错误的事实,没有任何有用的操作


关于如何排除故障,有什么建议吗?

我也有一个500错误,问题在于他们的诊断:


我用pdb调试了它。显然,show-response选项并没有真正以一种有用的方式实现。我将“import pdb;pdb.set_trace()”放在Python dist中的
distutils/command/register.py
第291行,在我的版本中,它位于方法
post_to_server()
中。我在这里执行“打印请求数据”,然后执行“下一步”,以便查看安装在异常捕获中的响应。

您是否尝试过Wireshark/tcpdump以获得完整的服务器响应?谢谢。不幸的是,这种情况比我更为普遍,但我至少有点高兴地知道,我没有做任何明显愚蠢的事情(在这种特殊情况下)。