2012年03月06日

[Sphinx][Cygwin] 日本語フォルダ/ファイル名を扱えるようにするパッチを作った #sphinxjp

このエントリーをはてなブックマークに追加

フォルダに日本語が入ってる時に"make html"が失敗する

Sphinxを利用してドキュメントを作成していたら、make htmlに失敗する現象に遭遇した。

$ make html
sphinx-build -b html -d _build/doctrees   . _build/html
Running Sphinx v1.1.2
WARNING: the config value '__file__' is set to a string with non-ASCII characters; this can lead to Unicode errors occurring. Please use Unicode strings, e.g. u'Content'.
loading pickled environment... not yet created
building [html]: targets for 4 source files that are out of date
updating environment: 4 added, 0 changed, 0 removed
reading sources... [ 25%] cloud-client
Exception occurred:
  File "/usr/lib/python2.6/site-packages/Sphinx-1.1.2-py2.6.egg/sphinx/environment.py", line 758, in read_doc
    pub.set_source(None, src_path.encode(fs_encoding))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 73: ordinal not in range(128)
The full traceback has been saved in /tmp/sphinx-err-Cg4EMC.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
Either send bugs to the mailing list at <http: groups.google.com="" group="" sphinx-dev=""></http:>,
or report them in the tracker at <http: bitbucket.org="" birkenfeld="" sphinx="" issues=""></http:>. Thanks!
make: *** [html] Error 1

幾つか試してみると、失敗する時は、フォルダ名に日本語が入っている。 この辺を検索してみると、同じように日本語フォルダ/ファイル名問題に失敗してる事例を発見。

Sphinx翻訳ハッカソン(2011/3/19)

手元の環境にhttp://paste.pocoo.org/show/355901/を適用してみると動かない。これはSphinxのバージョン差異が問題だった。

  • Sphinx 1.0.7

上記パッチを参考に書いたのが、下記検証環境において動作確認したパッチ。

検証環境
  • CYGWIN_NT-6.1
  • Python 2.6.5
  • Sphinx 1.1.2
Sphinx-1.1.2-py2.6.patch(日本語フォルダ/ファイル名を扱えるようにするパッチ)
あとがき

本パッチのベースとなるパッチを作成・公開して下さった @shimizukawa 様、ありがとうございます。



エキスパートPythonプログラミング
Tarek Ziade
アスキー・メディアワークス
売り上げランキング: 7179



編集

トラックバックURL

コメントする

このブログにコメントするにはログインが必要です。