python - 尝试发布新包版本时,如何解决来自 pypi 的 500 响应?

标签 python pypi

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

相关包的当前版本是 0.0.2-1。 (-1 是我在某处读到的构建标记约定;我正在改变这种做法,将 b 用于 beta,这更相关.)

基本上,如果我有 version(在 setup() 调用中)和构建标签(来自 setup.cfg)的组合这不是 pypi 上已有的当前版本,registerupload 命令都失败了:

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 命令仅报告服务器遇到错误的事实,没有任何有用的继续。

有什么建议可以解决问题吗?

最佳答案

我也遇到了 500 错误,他们诊断的问题在这里:https://sourceforge.net/tracker/index.php?func=detail&aid=3573564&group_id=66150&atid=513503 .

我使用 pdb 调试它。显然,show-response 选项并没有真正以有用的方式实现。我在第 291 行的 distutils/command/register.py 中的 Python dist 中放置了一个“import pdb; pdb.set_trace()”,在我的版本中,它位于方法 post_to_server( )。我在那里执行“print req.data”,然后“下一步”通过它,以便查看安装在异常捕获中的响应。

关于python - 尝试发布新包版本时,如何解决来自 pypi 的 500 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12675091/

相关文章:

python - 是否可以只更新 pypi 索引中的详细信息,而不重新创建包?

python - 无法使用 twine 上传到 PyPI ("invalid command")

python - Project Euler p14 增强性能

python - 我们能否在不增加分类时间的情况下创建深度学习模型的集合?

python - 动态规范化 2D numpy 数组

python - 内存到磁盘 - python - 持久内存

python - 构建 python pypi 轮子,通常的噩梦

javascript - 如何在 Python 中存储从 Javascript 动态生成的 HTML 表单元素?

python-3.x - 为 CLI 脚本构建 python 包

python - 仅 Linux 的 PyPI 镜像有多少 TB?