helen's blog

ずっとおもしろいことしてたいな。

nwdiagでただサンプルを動かすまでが長かった

nwdiagというMarkdownでネットワーク図を書ける素敵ツールを見つけたので
さくっと書こうと思ったらなぜか半日かかった苦しみを残します
だからpipは苦手なんだ...

nwdiag

Markdownを書けばネットーワーク図、パケットヘッダなどGenerateできる優れもの

http://blockdiag.com/en/nwdiag/index.html

インストール方法
pip install nwdiag

http://blockdiag.com/en/nwdiag/introduction.html

実行
nwdiag simple.diag

http://blockdiag.com/en/nwdiag/nwdiag-examples.html

みたいなのがさくっとできる

Symbol not found: _clock_gettime
nwdiag simple.diag
Traceback (most recent call last):
  File "/usr/local/bin/nwdiag", line 7, in <module>
    from nwdiag.command import main
  File "/usr/local/lib/python2.7/site-packages/nwdiag/command.py", line 18, in <module>
    import nwdiag.builder
  File "/usr/local/lib/python2.7/site-packages/nwdiag/builder.py", line 18, in <module>
    from nwdiag.elements import (Diagram, DiagramNode, DiagramEdge,
  File "/usr/local/lib/python2.7/site-packages/nwdiag/elements.py", line 17, in <module>
    import blockdiag.elements
  File "/usr/local/lib/python2.7/site-packages/blockdiag/elements.py", line 19, in <module>
    from blockdiag.utils import images, unquote, urlutil, uuid, XY
  File "/usr/local/lib/python2.7/site-packages/blockdiag/utils/images.py", line 20, in <module>
    from PIL import Image
  File "/usr/local/lib/python2.7/site-packages/PIL/Image.py", line 60, in <module>
    from . import _imaging as core
ImportError: dlopen(/usr/local/lib/python2.7/site-packages/PIL/_imaging.so, 2): Symbol not found: _clock_gettime
  Referenced from: /usr/local/lib/python2.7/site-packages/PIL/.dylibs/liblzma.5.dylib (which was built for Mac OS X 10.12)
  Expected in: /usr/lib/libSystem.B.dylib
 in /usr/local/lib/python2.7/site-packages/PIL/.dylibs/liblzma.5.dylib

pipでインストールするときって
うまくいくと大喜びするくらいうまくいかない..

エラーメッセージがおっしゃる通り、使ってるMacは10.11.6で
10.12で入る何かが足りないらしい

github.com

同じようなissueは見つかるけど
OSアップデートするのは嫌だし
brew update や brew upgrade, prune試しても変わらなかった

ライブラリのバージョンを下げる

github.com

$ pip list
Package         Version
--------------- --------
Pillow          5.1.0 # アウツ

$ pip install 'pillow!=5.1.0'

$ pip list
Package         Version
--------------- --------
Pillow          5.0.0 # 下げた

$ nwdiag simple.diag # Success!

pipでハマると普通に半日吹き飛んでつらいなぁ😥