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)