QMKコマンドがエラーで通らない
qmkコマンドを打つと以下のエラーが出てしまう状況。qmk --helpでもqmk compileでも同じエラーが出る。
% qmk
Error: %s: %s ('ImportError', ImportError('dlopen(/usr/local/Cellar/qmk/1.1.0/libexec/lib/python3.9/site-packages/PIL/_imaging.cpython-39-darwin.so, 2): Library not loaded: /usr/local/opt/jpeg/lib/libjpeg.9.dylib\n  Referenced from: /usr/local/Cellar/qmk/1.1.0/libexec/lib/python3.9/site-packages/PIL/_imaging.cpython-39-darwin.so\n  Reason: image not found'))
Traceback (most recent call last):
  File "/usr/local/Cellar/qmk/1.1.0/libexec/lib/python3.9/site-packages/qmk_cli/script_qmk.py", line 76, in main
    import qmk.cli  # noqa
  File "/Users/yuta/qmk_firmware/lib/python/qmk/cli/__init__.py", line 238, in <module>
    __import__(subcommand)
  File "/Users/yuta/qmk_firmware/lib/python/qmk/cli/painter/__init__.py", line 1, in <module>
    from . import convert_graphics
  File "/Users/yuta/qmk_firmware/lib/python/qmk/cli/painter/convert_graphics.py", line 7, in <module>
    from qmk.painter import render_header, render_source, render_license, render_bytes, valid_formats
  File "/Users/yuta/qmk_firmware/lib/python/qmk/painter.py", line 6, in <module>
    from PIL import Image, ImageOps
  File "/usr/local/Cellar/qmk/1.1.0/libexec/lib/python3.9/site-packages/PIL/Image.py", line 132, in <module>
    from . import _imaging as core
ImportError: dlopen(/usr/local/Cellar/qmk/1.1.0/libexec/lib/python3.9/site-packages/PIL/_imaging.cpython-39-darwin.so, 2): Library not loaded: /usr/local/opt/jpeg/lib/libjpeg.9.dylib
  Referenced from: /usr/local/Cellar/qmk/1.1.0/libexec/lib/python3.9/site-packages/PIL/_imaging.cpython-39-darwin.so
  Reason: image not found
環境
macOS Catalina
バージョン 10.15.7
qmkのインストールは公式のチュートリアル通りbrew install qmk/qmk/qmkにて実施した。
解決方法
以下コマンドでlibjpegをインストールしたらエラーが出なくなった。
% brew install libjpeg
エラーのここがポイントだったようで、libjpegをインストールする前は当該パスが存在していなかった。
2): Library not loaded: /usr/local/opt/jpeg/lib/libjpeg.9.dylib\n
libjpegをインストールしようと思ったきっかけは、近しい課題が以下にあったかた。こちらを参考に上記の解決策に至った。
https://stackoverflow.com/questions/50273061/dyld-library-not-loaded-usr-local-opt-jpeg-lib-libjpeg-9-dylib-opencv-c-mac
余談
最初はPillowが読み込めないエラーだと思い、pip install pillowやpip3 install pillowなど試していたが全然間違ってた。pythonコマンドでpython2が動くようになっており、python2にはpillowがインストールされていなかったので、aliasでpythonでpython3を読み出すようにもしたがそれも意味はなかった。やっぱりエラーをちゃんと読むのは大事だなと痛感した。