japanize-matplotlib icon indicating copy to clipboard operation
japanize-matplotlib copied to clipboard

[Proposal] Python 3.12以降への対応

Open Take-Me1010 opened this issue 2 years ago • 2 comments

大変便利なパッケージの開発、ありがとうございます。

問題

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を作成します。 以上、よろしくお願いします。

Take-Me1010 avatar Oct 27 '23 06:10 Take-Me1010

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

tueda avatar Nov 06 '23 13:11 tueda

作者の方がご多忙なのかメンテナンスされていないようなので、forkして別パッケージとして公開しました。よろしければご利用ください。 https://github.com/ciffelia/matplotlib-fontja

ciffelia avatar Jan 03 '24 16:01 ciffelia