japanize-matplotlib
japanize-matplotlib copied to clipboard
[Proposal] Python 3.12以降への対応
大変便利なパッケージの開発、ありがとうございます。
問題
Python 3.12.x で、pip installを利用してこちらのパッケージを利用しようとするとno module errorで動作しない
再現
- Python 3.12
- japanize_matplotlib 1.1.3
仮想環境の作成
$pipenv --python 3.12
$pipenv install matplotlib japanize_matplotlib
ソースコード
import japanize_matplotlib
エラーメッセージ
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'distutils'
原因
https://peps.python.org/pep-0632/#backwards-compatibility distutilsが3.12以降、削除されたのでno module errorを引き起こします。
提案
こちらの質問の回答のように、distutilsへの依存を削除すべきかと思います。 https://teratail.com/questions/ispptkd2y6ai7t
必要であればPRを作成します。 以上、よろしくお願いします。
Python 3.10でも、pytestでDeprecationWarningが出るので望ましくないです。よろしくお願いいたします。
============================== warnings summary ===============================
.venv/lib/python3.10/site-packages/japanize_matplotlib/japanize_matplotlib.py:16
/home/tueda/tmp/.venv/lib/python3.10/site-packages/japanize_matplotlib/japanize_matplotlib.py:16: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
is_support_createFontList = LooseVersion(matplotlib.__version__) < '3.2'
.venv/lib/python3.10/site-packages/setuptools/_distutils/version.py:345
/home/tueda/tmp/.venv/lib/python3.10/site-packages/setuptools/_distutils/version.py:345: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
other = LooseVersion(other)
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
作者の方がご多忙なのかメンテナンスされていないようなので、forkして別パッケージとして公開しました。よろしければご利用ください。 https://github.com/ciffelia/matplotlib-fontja