完全に個人的な備忘録

完全に個人的な備忘録。学習コストが高くなってきたので、メモしておかないと…片っ端から忘却の彼方なのです。

blockdiag で cisco の shape が動かなくなった…

最近、blockdiagをインストールしたとろこ、ciscoのshapeを指定すると、エラーになる現象が発生した。いや、これは、別の環境では動作しているのに…色々、インストールしたり、アンインストールしたりして、わけがわからなくなったので、

OSのインストールからやってみた。OSは Ubuntu 12.04LTS のMinimalインストール。

必要なパッケージをインストール。

$ sudo apt-get install -y python-setuptools python-dev python-imaging\
   ttf-sazanami-mincho

blockdiagをインストール。

$ sudo easy_install blockdiag

簡単なソースをコンパイル

$ cat test.diag
{
a -> b -> c;
}

$ blockdiag -T png test.diag
$ blockdiag -T svg test.diag

ここまでは、問題なし。

ciscoのshapeをインストール。

$ sudo easy_install blockdiagcontrib-cisco

そして、コンパイル

$ cat cisco.diag
{
 A [shape = "cisco.router"];
}

$ blockdiag cisco.diag
ERROR: ImageDrawEx instance has no attribute 'loadImage'

エラーが発生する。以前インストールしたものは動いているのだが・・・本日時点でサラの状態からインストールするとエラーになる。何故だ・・・

深追いはしていないけど…

tk0miya / blockdiag / issues / #48 - Error when using with blockdiagcontrib-cisco — Bitbucket

に、同じ報告があるので、暫くウォッチしておこう。



(2014.2.8追記)

ウォッチしていたかいがありました。bitbucket にレスポンスがありました。loadImage古くて使えなくなっていたんですね。cisco.pyに以下の修正を行なったところ、正常に処理されました。

           - drawer.loadImage(image_url, self.image_box)
          ---
           + drawer.image(self.image_box,image_url)

f:id:tarancho:20140208174447p:plain