import: delegate library support not built-in ” (X11) @ error/import.c/ImportImageCommand/1297.

はじめに

ページのタイトルのエラーが発生したときの対処方法です。

macOS Catalina 10.15.7で発生しました。

過去のOSバージョンで類似の現象に対する対処方法の記事を見かけましたが、少し解決方法が違っていたので、記録を残します。

具体的に起こったこと

pythonプログラムから結果を表示するためにimagemagickを利用している部分で上記のエラーが発生。

解決策

完全解決にならなかったが参考になった情報

https://qiita.com/ciela/items/b8b8ec63511ac8bf3376

要するにやるべきことはこのQiitaの記事の内容と変わっていない。が、記事が古いためにこのまま実行できず、解決にならない部分がある。

  • imagemagickをbrewで単純にインストールしてもX11対応していないモジュールがインストールされる
  • X11対応のモジュールのインストール方法が使えない→X11対応モジュールが別にある
  • Xquartzをインストールするのにcaskからインストールするがその指定方法が変わっている

解決策

というわけで、これらを考慮した解決策が以下の通り。

brew uninstall imagemagick
brew install --cask xquartz
brew install tlk/imagemagick-x11/imagemagick

1行目はすでにimagemagickをインストール済みの場合に使用します。インストールしてなければ必要ありませんが、当記事の流れ的にはインストールしているからこそこのエラーに遭遇していますので…

2行目がcaskからのXquartzのインストール。

3行目がX11対応したimagemagickのインストールです。

動作確認

export DISPLAY=:0.0
open /Applications/Utilities/XQuartz.app

準備がここまでで、以下が動作の確認のためのアプリ起動。

display wizard:
display xxx.jpg

displayimagemagickのコマンドで、1行目はサンプル画像の表示で、以下の様な画像が表示されます。2行目が自分が用意した画像の表示です。(ですのでxxx.jpgは適当な画像を用意してそのファイル名を指定します)

まとめ

要するに、Mac上でImageMagickのX Window System(X11またはXとも呼ばれる)を使用する画面アプリが起動できなかったのを解決するという話で、X11をインストールし、ImageMagickをX11対応のモジュールをインストールし直したというお話。

おまけ

HomebrewはローカルにGit リポジトリをpullしているらしく、以下のメッセージが出た状態で、異常とも思える時間がかかることがあります。というか、たまにしか使わないコマンドなので、いつも時間がかかります。

Updating Homebrew...

解決策はありませんので気長に待ちましょう。