uokadaの見逃し三振は嫌いです

ここで述べられていることは私の個人的な意見に基づくものであり、私が所属する組織には一切の関係はありません。

Sphinxの環境をpython3対応した話

昨日、github-pagesの生成に使っているSpinx環境を python3.6に移行した。

使っているライブラリを最新のバージョンにあげるだけで問題なかったが1つだけpython3に対応していないものがあってそれがsphinxtogithub

sphinxtogithub · PyPI

このライブラリはsphinxで生成したページのcssなどのリンクを_staticからstaticに変えるというライブラリです。

_staticだとgithub-pageでcssにアクセスさせてくれずstaticに変える必要がありこのライブラリがないというのは結構致命的にな問題であった。

対応策を探すためにライブラリのgithubリポジトリをみていたところpython3対応のPRがすでに出されていた。

Added Python 3 compatibility, without breaking Python 2.7 by proycon · Pull Request #9 · michaeljones/sphinx-to-github

このPRは3年ほど放置されていてマージが期待出来なかったのでPR作者のリポジトリからライブラリを取るようにしてpython3対応を完了させた。

pipで次のようにすればPRもとからライブラリをインストール出来ます。

% pip3.6 install -e "git+git://github.com/proycon/sphinx-to-github.git#egg=sphinx-to-github"

requirements.txtに書くときは下のようにするとインストール出来ます。 自分は上のpipコマンドでインストールしてpip freezeした結果をrequirements.txtに記述しているのでコミットのハッシュを含んだ値をセットしています。

# sphinxtogithub==1.1.0
-e git://github.com/proycon/sphinx-to-github.git@9b61be70ccfbec99724544c3e94ed1c43fb5295c#egg=sphinxtogithub

こんな感じで1時間ほどでpython3移行を完了することが出来ました。 python3移行を数年放置してたんですが思ったよりも簡単だったのでみなさんもちょっとした空き時間にやってみると良いのではないでしょうか。

エキスパートPythonプログラミング改訂2版

エキスパートPythonプログラミング改訂2版