UJP - 技術情報2 : blockdiagをインストールしてチャートをコマンドから作成 blockdiag

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

Page Top

はじめに anchor.png

 blockdiagは,テキストで定義した情報を元に,チャートを作成してくれるツール.これをbrewからインストールして,実際にチャートを作ってみるところまで作業する.blockdiag自体はPythonで作られているので,その環境も作ることに.

Page Top

インストール事前確認 anchor.png

 依存関係のあるfreetypeパッケージが入っているか確認.

MBA2014:~  ujpadmin$ 🆑brew search freetype
freetype ✔
MBA2014:~ ujpadmin$
pythonのパッケージ管理システムが必要そうなので,それが入っているか確認.
MBA2014:~  ujpadmin$ 🆑which easy_install
/usr/local/bin/easy_install🈁
MBA2014:~ ujpadmin$

 いつ,入ったのだろうか.ちなみにバージョンを確認.

MBA2014:~  ujpadmin$ 🆑/usr/local/bin/easy_install --version
setuptools 19.4 from /usr/local/lib/python2.7/site-packages (Python 2.7)🈁
MBA2014:~ ujpadmin$
Page Top

パッケージのインストール anchor.png

 pythonのeasy_installコマンドを使ってインストール.

MBA2014:~  ujpadmin$ 🆑 easy_install blockdiag
Creating /usr/local/lib/python2.7/site-packages/site.py
Searching for blockdiag
Reading https://pypi.python.org/simple/blockdiag/
Best match: blockdiag 1.5.3
Downloading https://pypi.python.org/packages/5f/fc/a977375277e22f9a90e04fe7bd61e49c556bb1c
 1d7c8065277c21ba2fef9/blockdiag-1.5.3.tar.gz#md5=24c1de40066687a6e0f401a97197f43c
Processing blockdiag-1.5.3.tar.gz
Writing /var/folders/js/bwg7lpls6sl7fvzbzh1_451875gjwy/T/easy_install-LuC5LC/blockdiag-1.5
 .3/setup.cfg
Running blockdiag-1.5.3/setup.py -q bdist_egg --dist-dir /var/folders/js/bwg7lpls6sl7fvzbz
 h1_451875gjwy/T/easy_install-LuC5LC/blockdiag-1.5.3/egg-dist-tmp-lcJq6r
warning: no previously-included files found matching '.drone.io.sh'
warning: no previously-included files found matching 'examples/update.sh'
zip_safe flag not set; analyzing archive contents...
blockdiag.tests.test_command: module references __file__
blockdiag.tests.test_generate_diagram: module references __file__
blockdiag.tests.test_utils_fontmap: module references __file__
blockdiag.tests.utils: module references __file__
blockdiag.tests.rst.test_base_directives: module references __file__
creating /usr/local/lib/python2.7/site-packages/blockdiag-1.5.3-py2.7.egg
Extracting blockdiag-1.5.3-py2.7.egg to /usr/local/lib/python2.7/site-packages
Adding blockdiag 1.5.3 to easy-install.pth file
Installing blockdiag script to /usr/local/bin
Installed /usr/local/lib/python2.7/site-packages/blockdiag-1.5.3-py2.7.egg
Processing dependencies for blockdiag
Searching for webcolors
Reading https://pypi.python.org/simple/webcolors/
Best match: webcolors 1.5
Downloading https://pypi.python.org/packages/1d/e8/24f4a8854290c685c335076a322e9db7224e88f
 f723de5d01ced2e1d767d/webcolors-1.5.tar.gz#md5=2e9da1bbb7a087c6108e05be64640afb
Processing webcolors-1.5.tar.gz
Writing /var/folders/js/bwg7lpls6sl7fvzbzh1_451875gjwy/T/easy_install-bOXNx4/webcolors-1.5
 /setup.cfg
Running webcolors-1.5/setup.py -q bdist_egg --dist-dir /var/folders/js/bwg7lpls6sl7fvzbzh1_
 451875gjwy/T/easy_install-bOXNx4/webcolors-1.5/egg-dist-tmp-I_7uWZ
zip_safe flag not set; analyzing archive contents...
Copying webcolors-1.5-py2.7.egg to /usr/local/lib/python2.7/site-packages
Adding webcolors 1.5 to easy-install.pth file
Installed /usr/local/lib/python2.7/site-packages/webcolors-1.5-py2.7.egg
Searching for Pillow
Reading https://pypi.python.org/simple/Pillow/
Best match: Pillow 3.2.0
Downloading https://pypi.python.org/packages/e2/af/0a3981fffc5cd43078eb8b1057702e0dd2d5771
 e5aaa36cbd140e32f8473/Pillow-3.2.0.tar.gz#md5=7cfd093c11205d9e2ebe3c51dfcad510
Processing Pillow-3.2.0.tar.gz
Writing /var/folders/js/bwg7lpls6sl7fvzbzh1_451875gjwy/T/easy_install-zPaYUh/Pillow-3.2.0/
 setup.cfg
Running Pillow-3.2.0/setup.py -q bdist_egg --dist-dir /var/folders/js/bwg7lpls6sl7fvzbzh1_
 451875gjwy/T/easy_install-zPaYUh/Pillow-3.2.0/egg-dist-tmp-vqFyAA
warning: no files found matching '*.sh'
no previously-included directories found matching 'docs/_static'
warning: no previously-included files found matching '.coveragerc'
warning: no previously-included files found matching '.editorconfig'
warning: no previously-included files found matching '.landscape.yaml'
warning: no previously-included files found matching 'appveyor.yml'
warning: no previously-included files found matching 'build_children.sh'
warning: no previously-included files found matching 'tox.ini'
warning: no previously-included files matching '.git*' found anywhere in distribution
warning: no previously-included files matching '*.pyc' found anywhere in distribution
warning: no previously-included files matching '*.so' found anywhere in distribution
--- using frameworks at /System/Library/Frameworks
Building using 4 processes
Building using 4 processes
Building using 4 processes
Building using 4 processes
clang: warning: -framework Tcl: 'linker' input unused
clang: warning: -framework Tk: 'linker' input unused
clang: warning: -framework Tcl: 'linker' input unused
clang: warning: -framework Tk: 'linker' input unused
Building using 4 processes
Building using 4 processes
--------------------------------------------------------------------
PIL SETUP SUMMARY
--------------------------------------------------------------------
version      Pillow 3.2.0
platform     darwin 2.7.11 (default, Apr  6 2016, 18:44:54)
             [GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)]
--------------------------------------------------------------------
--- 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 available
--- WEBPMUX support available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.
To check the build, run the selftest.py script.🈁
Copying Pillow-3.2.0-py2.7-macosx-10.10-x86_64.egg to /usr/local/lib/python2.7/site-packages
Adding Pillow 3.2.0 to easy-install.pth file
Installing pildriver.py script to /usr/local/bin
Installing viewer.py script to /usr/local/bin
Installing gifmaker.py script to /usr/local/bin
Installing pilfile.py script to /usr/local/bin
Installing pilconvert.py script to /usr/local/bin
Installing pilfont.py script to /usr/local/bin
Installing createfontdatachunk.py script to /usr/local/bin
Installing explode.py script to /usr/local/bin
Installing pilprint.py script to /usr/local/bin
Installing player.py script to /usr/local/bin
Installing thresholder.py script to /usr/local/bin
Installing painter.py script to /usr/local/bin
Installing enhancer.py script to /usr/local/bin
Exception in thread Thread-1 (most likely raised during interpreter shutdown):
Traceback (most recent call last):
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/
threading.py", line 801, in __bootstrap_inner
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/
threading.py", line 754, in run
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/
multiprocessing/pool.py", line 330, in _handle_workers
<type 'exceptions.TypeError'>: 'NoneType' object is not callable
Exception TypeError: TypeError("'NoneType' object does not support item deletion",) in <Finaliz
e object, dead> ignored
Exception in thread Thread-2 (most likely raised during interpreter shutdown):
Traceback (most recent call last):
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/
threading.py", line 801, in __bootstrap_inner
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/
threading.py", line 754, in run
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/
multiprocessing/pool.py", line 366, in _handle_tasks
<type 'exceptions.TypeError'>: 'NoneType' object is not callable
Installed /usr/local/lib/python2.7/site-packages/Pillow-3.2.0-py2.7-macosx-10.10-x86_64.egg
Searching for funcparserlib
Reading https://pypi.python.org/simple/funcparserlib/
Best match: funcparserlib 0.3.6
Downloading https://pypi.python.org/packages/cb/f7/b4a59c3ccf67c0082546eaeb454da1a6610e924d2e7a
2a21f337ecae7b40/funcparserlib-0.3.6.tar.gz#md5=3aba546bdad5d0826596910551ce37c0
Processing funcparserlib-0.3.6.tar.gz
Writing /var/folders/js/bwg7lpls6sl7fvzbzh1_451875gjwy/T/easy_install-Yi32Zb/funcparserlib-0.3.
6/setup.cfg
Running funcparserlib-0.3.6/setup.py -q bdist_egg --dist-dir /var/folders/js/bwg7lpls6sl7fvzbzh
1_451875gjwy/T/easy_install-Yi32Zb/funcparserlib-0.3.6/egg-dist-tmp-cnpiTT
warning: no files found matching 'requires.txt'
zip_safe flag not set; analyzing archive contents...
Copying funcparserlib-0.3.6-py2.7.egg to /usr/local/lib/python2.7/site-packages
Adding funcparserlib 0.3.6 to easy-install.pth file
Installed /usr/local/lib/python2.7/site-packages/funcparserlib-0.3.6-py2.7.egg
Finished processing dependencies for blockdiag
MBA2014:~ ujpadmin$

 Pillow 3.2.0がインストールされている.PillowはPILというpythonの画像系ライブラリのフォーク.PILが開発終了なのだそう.  selftest.pyを実行しようと考えたのだが,PIL用だった模様でPillowをインストールしても配置され無い.  とりあえず,openjpegとlittlecms2が入って無いとログされている.

Page Top

openjpegとlittle-cms2をインストール anchor.png

 まずはライブラリをbrewで調べる.

MBA2014:~  ujpadmin$ 🆑brew search openjpeg
homebrew/versions/openjpeg20   homebrew/versions/openjpeg21   openjpeg🈁
MBA2014:~ ujpadmin$

 openjpegをインストール.

MBA2014:~  ujpadmin$ 🆑brew install openjpeg
==> Installing dependencies for openjpeg: little-cms2🈁
==> Installing openjpeg dependency: little-cms2
==> Downloading https://homebrew.bintray.com/bottles/little-cms2-2.7.yosemite.bottle.tar.gz
######################################################################## 100.0%
==> Pouring little-cms2-2.7.yosemite.bottle.tar.gz
🍺  /usr/local/Cellar/little-cms2/2.7: 17 files, 1M
==> Installing openjpeg
==> Downloading https://homebrew.bintray.com/bottles/openjpeg-1.5.2_1.yosemite.bottle.tar.g
######################################################################## 100.0%
==> Pouring openjpeg-1.5.2_1.yosemite.bottle.tar.gz
🍺  /usr/local/Cellar/openjpeg/1.5.2_1: 25 files, 373.7K
MBA2014:~ ujpadmin$

 一緒にlittle-cms2もインストールされた.

Page Top

Pillowの再インストール anchor.png

 openjpegとlittle-cms2を再認識させるために,一度Pillowをアンインストールする.

MBA2014:~  ujpadmin$ 🆑 pip uninstall Pillow
Uninstalling Pillow-3.2.0:
  /usr/local/lib/python2.7/site-packages/Pillow-3.2.0-py2.7-macosx-10.10-x86_64.egg
Proceed (y/n)? 🈁

 yを選択して進める.

Proceed (y/n)? 🆑y
  Successfully uninstalled Pillow-3.2.0
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 9, in <module>
    load_entry_point('pip==8.1.2', 'console_scripts', 'pip')()
  File "/usr/local/lib/python2.7/site-packages/pip/__init__.py", line 221, in main
    return command.main(cmd_args)
  File "/usr/local/lib/python2.7/site-packages/pip/basecommand.py", line 252, in main
    pip_version_check(session)
  File "/usr/local/lib/python2.7/site-packages/pip/utils/outdated.py", line 102, in pip_version
_check
    installed_version = get_installed_version("pip")
  File "/usr/local/lib/python2.7/site-packages/pip/utils/__init__.py", line 848, in get_install
ed_version
    working_set = pkg_resources.WorkingSet()
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 619
, in __init__
    self.add_entry(entry)
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 675
, in add_entry
    for dist in find_distributions(entry, True):
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 194
2, in find_eggs_in_zip
    if metadata.has_metadata('PKG-INFO'):
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 146
3, in has_metadata
    return self.egg_info and self._has(self._fn(self.egg_info, name))
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 182
4, in _has
    return zip_path in self.zipinfo or zip_path in self._index()
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 170
4, in zipinfo
    return self._zip_manifests.load(self.loader.archive)
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 164
4, in load
    mtime = os.stat(path).st_mtime
OSError: [Errno 2] No such file or directory: '/usr/local/lib/python2.7/site-packages/Pillow-3.
2.0-py2.7-macosx-10.10-x86_64.egg'
MBA2014:~ ujpadmin$

 エラーで終了.無視.  インストール.

MBA2014:~  ujpadmin$ 🆑pip install Pillow
Collecting Pillow
  Downloading Pillow-3.3.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_6
4.macosx_10_10_intel.macosx_10_10_x86_64.whl (3.2MB)
    100% |████████████████████████████████| 3.2MB 300kB/s
Installing collected packages: Pillow
Successfully installed Pillow-3.3.0
MBA2014:~ ujpadmin$

 インストール完了.

Page Top

selftest.pyを実行 anchor.png

 以下のURLにselftest.pyがあるので,取得する.(小さいのでコピペでも大丈夫.)

https://github.com/python-pillow/Pillow/blob/master/selftest.py

 実行する.

MBA2014:ShellTest  ujpadmin$ 🆑python selftest.py |head -n 16
--------------------------------------------------------------------
Pillow 3.3.0 TEST SUMMARY
--------------------------------------------------------------------
Python modules loaded from /usr/local/lib/python2.7/site-packages/PIL
Binary modules loaded from /usr/local/lib/python2.7/site-packages/PIL
--------------------------------------------------------------------
--- PIL CORE support ok
--- TKINTER support ok
--- FREETYPE2 support ok
--- LITTLECMS2 support ok🈁
--- WEBP support ok
--- JPEG support ok
--- OPENJPEG (JPEG2000) support ok🈁
--- ZLIB (PNG/ZIP) support ok
--- LIBTIFF support ok
--------------------------------------------------------------------
MBA2014:ShellTest ujpadmin$

 openjpegとlittlecms2も認識されている.

Page Top

easy_install -U blockdiagでアップグレード anchor.png

 ここまでの作業で日時が空いたので,一応アップグレード対象が無いか確認.

MBA2014:~  ujpadmin$ 🆑easy_install -U blockdiag
Searching for blockdiag
Reading https://pypi.python.org/simple/blockdiag/
Best match: blockdiag 1.5.3
Processing blockdiag-1.5.3-py2.7.egg
Adding blockdiag 1.5.3 to easy-install.pth file
Installing blockdiag script to /usr/local/bin
Using /usr/local/lib/python2.7/site-packages/blockdiag-1.5.3-py2.7.egg
Processing dependencies for blockdiag
Finished processing dependencies for blockdiag🈁
MBA2014:~ ujpadmin$
Page Top

環境を確認 anchor.png

 コマンドパスを確認

MBA2014:~  ujpadmin$ 🆑which blockdiag
/usr/local/bin/blockdiag
MBA2014:~ ujpadmin$

 Pythonのバージョンを確認.

MBA2014:~  ujpadmin$ 🆑python --version
Python 2.7.11🈁
MBA2014:~ ujpadmin$
Page Top

ダイアグラムを作成 anchor.png

 次のようなダイアログ定義ファイルを作成.

MBA2014:~  ujpadmin$ 🆑cat simple.diag
blockdiag {
AAA -> BBB -> CCC
    -> BBB -> DDD
AAA -> XXX -> ZZZ
AAA -> XXX
}
MBA2014:~ ujpadmin$

 ダイアグラムを作成.

MBA2014:~  ujpadmin$ 🆑blockdiag simple.diag
MBA2014:~ ujpadmin$

 作成されたファイルを確認する.

MBA2014:~  ujpadmin$ 🆑ls -lah simple.png
-rw-r--r--@ 1 ujpadmin  staff   5.7K  6 29 14:11 simple.png🈁
MBA2014:~ ujpadmin$

 ダイアグラムのサイズを指定して実行.

MBA2014:~  ujpadmin$ 🆑blockdiag simple.diag -o AAA.png --size=320x240
MBA2014:~ ujpadmin$
MBA2014:~  ujpadmin$ 🆑ls -lah AAA.png
-rw-r--r--  1 ujpadmin  staff   6.1K  6 29 14:13 AAA.png
MBA2014:~ ujpadmin$

トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 2083, today: 2, yesterday: 0
最終更新: 2016-07-12 (火) 23:22:34 (JST) (2806d) by shinnai(shinnai)

広告スペース
Google