hack のためのネタ帳, etc,,,

×

状況

Sphinx # Install で用意した環境で、sphinx-build を実行してみたところ、昨年の同時期に通ったはずのビルドが通らず、以下のようなエラーになった。
$ sphinx-build -M html . _build
Sphinx v8.2.3 を実行中
翻訳カタログをロードしています [ja]... 完了
Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`.
ERROR: Invalid value `None` in intersphinx_mapping['https://docs.python.org/']. Expected a two-element tuple or list.

Configuration error!

Versions
========

* Platform:         linux; (Linux-6.6.87.1-microsoft-standard-WSL2-x86_64-with-glibc2.39)
* Python version:   3.12.3 (CPython)
* Sphinx version:   8.2.3
* Docutils version: 0.21.2
* Jinja2 version:   3.1.6
* Pygments version: 2.19.1

Last Messages
=============

None.

Loaded Extensions
=================

None.

Traceback
=========

      File "/home/kou/.venv/lib/python3.12/site-packages/sphinx/ext/intersphinx/_load.py", line 132, in validate_intersphinx_mapping
        raise ConfigError(msg)
    sphinx.errors.ConfigError: Invalid `intersphinx_mapping` configuration (1 error).


The full traceback has been saved in:
/tmp/sphinx-err-k2_ecqs5.log

To report this error to the developers, please open an issue at <https://github.com/sphinx-doc/sphinx/issues/>. Thanks!
次期バージョンでのエラーメッセージ改善のために、ユーザーエラーの場合にも報告してください。

解法

なんか
ERROR: Invalid value `None` in intersphinx_mapping['https://docs.python.org/']. Expected a two-element tuple or list.
みたいに言われているのだが、conf.py を見ると、
intersphinx_mapping = {'https://docs.python.org/': None}
みたいにになっててタプルになってない。
  • Sphinx / Documentation / Sphinxを使う / 拡張 / sphinx.ext.intersphinx -- 他のプロジェクトのドキュメントへのリンク # 設定
によると、
intersphinx_mapping = {'python': ('https://docs.python.org/3', None)}
なんだそうで、書き換えてみたところ通った。

原因

これ何?
バージョン上がって conf.py の仕様変更になったって事?
と思い、
Web archive で古いバージョン探してみたら、
  • waybackmachine / 2024-07-12: Sphinx / Documentation / Sphinxを使う / 拡張 / sphinx.ext.intersphinx -- 他のプロジェクトのドキュメントへのリンク # 設定
バージョン 6.2 で非推奨
注意
This is the format used before Sphinx 1.0. It is deprecated and will be removed in Sphinx 8.0.
みたいな記述を見つけた

つまり、Sphinx 8.0 になった時点で古い設定への対応が無効化されたって事らしい。

この記述、その次に記録されてるタイミング
  • waybackmachine / 2024-12-03: Sphinx / Documentation / Sphinxを使う / 拡張 / sphinx.ext.intersphinx -- 他のプロジェクトのドキュメントへのリンク # 設定
では消え去ってて、完全に過去の物としてなかったことにされてた。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます