4

パッケージの新しいバージョンを pypi にリリースしようとしています。これはpython 2.7を使用しており、現在消費のためにpython 2.6/2.7をターゲットにしています。

問題のパッケージの現在のリリースは 0.0.2-1 です。(-1は、私がどこかで読んだビルド タグの規則でした。このプラクティスを、より関連性の高いbforを使用するように変更しています。)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 にまだ知られていないバージョン文字列の合計に関連していることを示唆しています。

残念ながら、--show-response使用時のオプションuploadは、サーバーが 500 コードで応答する場合には役に立ちません。distutils'uploadコマンドは、サーバーでエラーが発生したという事実を報告するだけで、何の役にも立ちません。

トラブルシューティングのために私ができることについて何か提案はありますか?

4

1 に答える 1

2

私も500エラーを抱えています。彼らからの診断に関する問題はここにあります: https ://sourceforge.net/tracker/index.php?func=detail&aid=3573564&group_id=66150&atid=513503 。

pdbを使用してデバッグしました。show-response オプションは、明らかに有用な方法で実装されていません。Python dist の 291 行目に "import pdb; pdb.set_trace()" を配置しましdistutils/command/register.pyたが、これは私のリリースでは method 内にありpost_to_server()ます。例外キャッチ内にインストールされた応答を確認するために、そこで「req.dataを印刷」してから「次へ」実行します。

于 2012-10-01T23:59:03.943 に答える