🐥

atcoder-toolsの実行時のエラーと対処法

2024/06/15に公開

はじめに

C++用のAtCoder環境作成時に遭遇したatcoder-tools実行時のエラーとその対処法を記録用に残します。他のモジュールを実行した際にも同様のエラーが出るみたいなので、そのような人も参考にしてください。

実行環境

  • DockerのPython公式イメージのpython:3.11-slim-bookworm

エラー内容

atcoder-tools gen {contest_id} を実行した際に以下のエラーが発生する。

Traceback (most recent call last):
  File "/usr/local/bin/atcoder-tools", line 5, in <module>
    from atcodertools.atcoder_tools import main
  File "/usr/local/lib/python3.11/site-packages/atcodertools/atcoder_tools.py", line 8, in <module>
    from atcodertools.tools.envgen import main as envgen_main
  File "/usr/local/lib/python3.11/site-packages/atcodertools/tools/envgen.py", line 14, in <module>
    from atcodertools.client.atcoder import AtCoderClient, Contest, LoginError, PageNotFoundError
  File "/usr/local/lib/python3.11/site-packages/atcodertools/client/atcoder.py", line 15, in <module>
    from atcodertools.common.language import Language
  File "/usr/local/lib/python3.11/site-packages/atcodertools/common/language.py", line 4, in <module>
    from atcodertools.codegen.code_generators import cpp, java, rust, python, nim, d, cs, swift, go, julia
  File "/usr/local/lib/python3.11/site-packages/atcodertools/codegen/code_generators/cpp.py", line 2, in <module>
    from atcodertools.codegen.template_engine import render
  File "/usr/local/lib/python3.11/site-packages/atcodertools/codegen/template_engine.py", line 5, in <module>
    from jinja2 import Environment
  File "/usr/local/lib/python3.11/site-packages/jinja2/__init__.py", line 12, in <module>
    from .environment import Environment
  File "/usr/local/lib/python3.11/site-packages/jinja2/environment.py", line 25, in <module>
    from .defaults import BLOCK_END_STRING
  File "/usr/local/lib/python3.11/site-packages/jinja2/defaults.py", line 3, in <module>
    from .filters import FILTERS as DEFAULT_FILTERS  # noqa: F401
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/jinja2/filters.py", line 13, in <module>
    from markupsafe import soft_unicode
ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/usr/local/lib/python3.11/site-packages/markupsafe/__init__.py)

対処法

このサイトで紹介されているように pip install markupsafe==2.0.1 とバージョンを固定してインストールするだけです。ちなみに元のバージョンを2.1.5でした。

参考

GitHubで編集を提案

Discussion