強火で進め

このブログではプログラム関連の記事を中心に書いてます。

PIL(Python Imaging Library) が Pillow に変わっていた

Python の画像ファイル作成、編集ライブラリ「Python Imaging Library」を新しい Mac マシンにインストールしようと以下のコマンドを実行した所、失敗。

brew install PIL

調査した所、「 Pillowという後継のプロジェクトがPILのリポジトリをフォークし、Python 3のサポートなどを追加している」という状態みたいです。

Python Imaging Library - Wikipedia
https://ja.wikipedia.org/wiki/Python_Imaging_Library

【Pillowの公式サイト】

Pillow: the friendly PIL fork
http://python-pillow.org/

という事で以下のコマンドで Pillow をインストール。

brew install homebrew/python/pillow

実行してみると以下のエラーが発生。

Traceback (most recent call last):
  File "build_trans.py", line 4, in <module>
    from PIL import Image, ImageDraw, ImageFont
  File "/usr/local/lib/python2.7/site-packages/PIL/Image.py", line 120, in <module>
    import io
  File "/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/io.py", line 51, in <module>
    import _io
ImportError: dlopen(/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyCodecInfo_GetIncrementalDecoder
  Referenced from: /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so
  Expected in: flat namespace
 in /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so

このエラーはこちらの記事を参考に

Homebrewで入るPython2.7.12でモジュールをimportしてコケることに対応したメモ - Qiita
http://qiita.com/eiroh/items/bee38c8353ce120ba9a2

以下のコマンドを実行する事で解消出来ました。

hash -r python

プロジェクト名は Pillow に変わっていますが今までと同様に from PIL import Image の様に PIL の記述で使えました。