具体的には、blockdiagなどでPNGを書き出す時に
$ blockdiag sample.diag…という風にエラーになってしまう。これはPillowのPNGサポートが無効な状態でビルドされていることが原因のようである。こんな感じでインストール中表示されたらPNG出力ができない:
ERROR: encoder zip not available
$ pip install Pillow
(略)
--------------------------------------------------------------------
PIL SETUP SUMMARY
--------------------------------------------------------------------※ちなみにPillowというのはPILのフォークであって、本家のPILの開発が終了しているためにforkされたプロジェクトみたい。
version Pillow 2.4.0
platform darwin 2.7.7 (default, Jun 14 2014, 23:12:13)
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)]
--------------------------------------------------------------------
--- TKINTER support available
--- JPEG support available
*** OPENJPEG (JPEG2000) support not available
*** ZLIB (PNG/ZIP) support not available
--- LIBTIFF support available
--- FREETYPE2 support available
*** LITTLECMS2 support not available
*** WEBP support not available
*** WEBPMUX support not available
--------------------------------------------------------------------
PNGサポートを有効にするためには、Pillowのsetup.pyが/usr/local/include/配下のzlib.hを探しに行くので、ここにシンボリックリンクを貼ってあげれば良い。これはXcodeの中にあるzlib.hをリンクして上げるのが良いみたい。
ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/zlib.h /usr/local/include/
http://stackoverflow.com/questions/19532125/cant-install-pil-after-mac-os-x-10-9リンクしたあと、もし既にPillowがインストール済みであれば一度アンインストール
$ pip uninstall Pillowアンインストールできたら再インストール
$pip install Pillow
(略)
--------------------------------------------------------------------このようにZLIB(PNG/ZIP) support availableと出れば良い。 このあとたとえばblockdiagをインストールするには
PIL SETUP SUMMARY
--------------------------------------------------------------------
version Pillow 2.4.0
platform darwin 2.7.7 (default, Jun 14 2014, 23:12:13)
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)]
--------------------------------------------------------------------
--- TKINTER support available
--- JPEG support available
*** OPENJPEG (JPEG2000) support not available
--- ZLIB (PNG/ZIP) support available
--- LIBTIFF support available
--- FREETYPE2 support available
*** LITTLECMS2 support not available
*** WEBP support not available
*** WEBPMUX support not available
--------------------------------------------------------------------
$ pip install blockdiagしてあげれば良い。
(追記)
Pillowをインストールするには freetype2が入っている必要があるかも知れない。これはHomebrewからfreetypeをインストールすることで問題なさそうだった。
$ brew info freetypezlibもHomebrewにFormulaがあったけどこれをリンクしたらなぜかPillowインストール時にエラーになった。
freetype: stable 2.5.3 (bottled)
http://www.freetype.org
/usr/local/Cellar/freetype/2.5.0.1 (59 files, 2.6M)
Poured from bottle
/usr/local/Cellar/freetype/2.5.3_1 (60 files, 2.6M) *
Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/freetype.rb
==> Dependencies
Required: libpng ✔==> Options
--universal
Build a universal binary
--without-subpixel
Disable sub-pixel rendering (a.k.a. LCD rendering, or ClearType)
(追記)
Homebrewからzlib.hとzconf.hの両方をリンクしたらPillowがインストールできた。Xcodeの場合はzlib.hだけで大丈夫だったのがなんでかは謎。Xcodeに入ってたのは1.2.5でHomebrewが1.2.8だった。
$ ln -s /usr/local/opt/zlib/include/zlib.h /usr/local/include/
$ ln -s /usr/local/opt/zlib/include/zconf.h /usr/local/include/
(追記)
Homebrewを使うなら、Homebrew/pythonからPillowを入れれば良いらしい。これはXcode.appパッケージの中のzlib.hを指定してZLIBサポートが有効な状態でインストールしてくれるみたい。
$ brew tap Homebrew/python
$ brew install pillow
0 件のコメント:
コメントを投稿