PyPIアップロードでありがちなreSTがHTMLにならない問題の対策¶
昨日の (第4回)Python mini hack-a-thon で@t2yが 多言語翻訳サポートツール ikazuchi でPyPIデビューを果たしたんですが、そのときにlong_descriptionに記載したreStrucutredTextのちょっとしたsyntaxエラーのせいでHTMLに変換されないままドキュメントがPyPIにアップロードされてしまいました。そこでreSTのエラーを事前にチェック方法が PyPIデビュー — Python Hack-a-thon 4: ハンズオン v1.0 documentation に書いてあると良いよね、という指摘をもらったので以下の文面をそのページに追加してみました。
注釈
(2011/1/23 @t2yからの指摘 で追加. ありがとう!)
実際にアップロードしてPyPIのページを確認したときに、long_description の内容がHTMLに変換されずにそのままreSTのテキストで表示されてしまう場合、 reSTの記述にエラーがある可能性があります。この場合、upload前にエラーが あるかどうかを確認しておくのがよいでしょう。
docutils付属の rst2html コマンドを使って以下のように実行して エラーが出るかどうか確認する方法があります。
$ python setup.py --long-description | rst2html > output.html
または、Python2.7以降でdocutilsがインストールされている環境であれば、 以下のコマンドのようにエラーを確認することも出来ます。問題がなければ running check だけ表示されますが、問題があれば以下のように表示されます。
$ python setup.py check -r
running check
warning: check: No directive entry for "foo" in module "docutils.parsers.rst.languages.en".
Trying "foo" as canonical directive name. (line 19)
warning: check: Could not finish the parsing.
もう一つの方法として、 haufe.releaser をインストールして python setup.py check_description のように実行する方法もありそうです(未確認)。
ところで、 多言語翻訳サポートツール ikazuchi 、poファイルを半自動でGoogle/Microsoft/Yahooの翻訳APIで翻訳してくれたり、vimからその機能を呼び出してインラインで翻訳実行したりと、かなり便利なツールでした。これはvimで翻訳する人にはかなり重宝しそう。いちどお試しあれ!