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を読み出すようにもしたがそれも意味はなかった。やっぱりエラーをちゃんと読むのは大事だなと痛感した。