いんくらyochさんの日記

興味あることの忘備録

Octoprintでの起動エラー対策

Ubuntuで動かしているOctoprintでv1.8.0からv1.8.1のアップデートをしたら起動できなくなった。

$ ./OctoPrint/bin/octoprint serve

Traceback (most recent call last):
  File "/home/ytotsuka/OctoPrint/lib/python3.8/site-packages/pkg_resources/__init__.py", line 583, in _build_master
    ws.require(__requires__)
  File "/home/ytotsuka/OctoPrint/lib/python3.8/site-packages/pkg_resources/__init__.py", line 900, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/home/ytotsuka/OctoPrint/lib/python3.8/site-packages/pkg_resources/__init__.py", line 791, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (Jinja2 2.11.3 (/home/ytotsuka/OctoPrint/lib/python3.8/site-packages), Requirement.parse('Jinja2>=3.0'), {'flask'})

python内のjinja2パッケージが古いので起動しない訳だが、初めはよく分からなかった。
OctoprintはOS内のpythonを使用せず、Octoprint内のpythonを使用しているので、パッケージのアップデートは以下のように行う。

$ ./OctoPrint/bin/python -m pip list --outdated
Package            Version   Latest      Type
------------------ --------- ----------- -----
Jinja2             2.11.3    3.1.2       wheel

$ ./OctoPrint/bin/python -m pip install -U jinja2

これで起動できた。