Tracでフローチャートを描画できるようにしたいと思います。
(※失敗談も含めて順をおってしか書いておりません。あんまり役に立たないかもしれません。
しかも失敗した理由は、完全に初歩的ミスです...。こういう時もあるということで(汗;)...)
まずは、graphviz。yumからインストールします。
バージョンは、2.12。
# yum install graphviz
Downloading Packages:
(1/12): libtool-ltdl-1.5.22-7.el5_4.i386.rpm | 37 kB 00:00
(2/12): libXpm-3.5.5-3.i386.rpm | 45 kB 00:00
(3/12): libXmu-1.0.2-5.i386.rpm | 62 kB 00:00
(4/12): libgsf-1.14.1-6.1.x86_64.rpm | 113 kB 00:00
(5/12): libcroco-0.6.1-2.1.x86_64.rpm | 129 kB 00:00
(6/12): librsvg2-2.16.1-1.el5.x86_64.rpm | 178 kB 00:00
(7/12): libXaw-1.0.2-8.1.i386.rpm | 324 kB 00:00
(8/12): ghostscript-fonts-5.50-13.1.1.noarch.rpm | 801 kB 00:00
(9/12): graphviz-2.12-8.el5.i386.rpm | 1.1 MB 00:00
(10/12): graphviz-2.22.0-4.el5.rf.x86_64.rpm | 2.5 MB 00:04
(11/12): urw-fonts-2.3-6.1.1.noarch.rpm | 4.5 MB 00:00
(12/12): ghostscript-8.70-6.el5_7.6.x86_64.rpm | 8.9 MB 00:01
--------------------------------------------------------------------------------
Total 2.3 MB/s | 19 MB 00:08
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Check Error:
file /usr/bin/gxl2dot conflicts between attempted installs of graphviz-2.12-8.el5.i386 and graphviz-2.22.0-4.el5.rf.x86_64
・・・この様である。
というわけで・・・調べる...。
ふむふむ。
# yum install graphviz.x86_64
Installed:
graphviz.x86_64 0:2.22.0-4.el5.rf
Dependency Installed:
ghostscript.x86_64 0:8.70-6.el5_7.6 ghostscript-fonts.noarch 0:5.50-13.1.1
libcroco.x86_64 0:0.6.1-2.1 libgsf.x86_64 0:1.14.1-6.1
librsvg2.x86_64 0:2.16.1-1.el5 urw-fonts.noarch 0:2.3-6.1.1
Complete!
はいっ。これでよさそうですね。
次に、Trac用のプラグインを導入します。
バージョンは、0.13。(←これがミスでした。詳しくは後述w)
バージョンは、0.13。(←これがミスでした。詳しくは後述w)
# /usr/local/bin/python2.7 /usr/local/bin/easy_install http://trac-hacks.org/svn/graphvizplugin/0.13/
Tracを配置しているディレクトリ下のhtdocsディレクトリに
画像書き出し用のディレクトリを作り、書き込み可能にしておく。
# cd /var/trac/hogeproject/htdocs
# mkdir graphviz
# chown apache:apache graphviz
Tracでgraphvizプラグインをenabledに。
[components]
graphviz.* = enabled
httpdを再起動。
httpdを再起動。
# service httpd restart
するも、Tracの管理画面のプラグイン画面に
Graphvizプラグインが表示されない・・・。
Tracのログを見ると...
2012-02-11 11:12:34,798 Trac[loader] ERROR: Skipping "graphviz = graphviz":
Traceback (most recent call last):
File "build/bdist.linux-x86_64/egg/trac/loader.py", line 68, in _load_eggs
entry.load(require=True)
File "/usr/local/lib/python2.7/site-packages/setuptools-0.6c12dev_r88846-py2.7.egg/pkg_resources.py", line 1954, in load
entry = __import__(self.module_name, globals(),globals(), ['__name__'])
File "build/bdist.linux-x86_64/egg/graphviz/__init__.py", line 17, in <module>
File "build/bdist.linux-x86_64/egg/graphviz/graphviz.py", line 33, in <module>
ImportError: cannot import name find_element
Graphvizプラグインがインポートエラーを出している。
何故だ・・・。
とりあえず、該当ファイル(graphviz.py)のソースコードを見る。
...
from trac.mimeview.api import Context, IHTMLPreviewRenderer, MIME_MAP
from trac.util.html import escape, find_elementfrom trac.util.text import to_unicode
from trac.util.translation import _
...
うーん。
Tracのソースコードを見る...。
(Trac-0.12.2.ja1/build/lib/trac/util/html.py)
(Trac-0.12.2.ja1/build/lib/trac/util/html.py)
...
import re
from genshi import Markup, escape, unescape
from genshi.core import stripentities, striptags, START, END
from genshi.builder import Element, ElementFactory, Fragment
from genshi.filters.html import HTMLSanitizer
__all__ = ['escape', 'unescape', 'html', 'plaintext', 'TracHTMLSanitizer']
class TracHTMLSanitizer(HTMLSanitizer):
...
Pythonのことは全然わからないんですが、
このファイルを全部見たところ、”find_element”なんか存在しないのです...。
(だったら他でインポートされているのだろうか・・・)
このファイルを全部見たところ、”find_element”なんか存在しないのです...。
(だったら他でインポートされているのだろうか・・・)
どうしたらいいんだろうー (´;ω;`)
似たような問題のチケットはTrac-hacksに発見したが:
http://trac-hacks.org/ticket/9180 (放置されたまま5年経過しているようだ)
うーん。
[2012/02/11 12:02 追記]
・・・もしかして。
http://trac.edgewall.org/browser/trunk/trac/util/html.py
(最新版のTrac(Trac 0.13)のhtml.py)
・・・なるほど!www
私はやっぱりアホだったようです(>ω<;)
現在、graphvizpluginのリポジトリに存在するバージョンは
0.9、0.10、0.11、0.13...の4つ。
http://trac-hacks.org/browser/graphvizplugin
そして私が導入しているTracは、Trac 0.12ですから...。
0.12用のgraphvizpluginが無いからということで
何の気なしに、最新版のgraphvizplugin 0.13を選んでしまいました。
ちなみに・・・リポジトリには
/Readme.txt
というファイルが置かれていて、インストール前にこれは読んでみたのですが、
ここに、0.13に関する情報はなかったです。(だからって選ぶなよ、私w)
さらに、0.13のディレクトリには、
ReleaseNotes.txt
というファイルが含まれていますが、これについては0.7.1用の文書を
そのままコピーしただけで未更新のようでした。とても古い。
(これも...だからって気にせずインストールしてしまうとは、私ってやつは...www)
いつもはもうちょっと気をつけるのですが。
うっかりですね・・・(汗;)
ちなみに...言い訳をすると、この記事の手順はちょっと端折っていて、
実際には、個別のTrac環境にプラグインをインストールして試用をしてみています。
自分の環境で動作確認がとれていないものを、実稼動しているTrac全体に導入するのは流石に危ないので・・・。
...とりあえず、graphvizplugin 0.13を削除。
# rm /usr/local/lib/python2.7/site-packages/graphviz-0.13.0.6-py2.7.egg
気を取り直して、graphvizplugin 0.11をインストール。
(尚、今度はsvn exportしてくることにします。)
http://trac-hacks.org/svn/graphvizplugin/0.11/
(尚、今度はsvn exportしてくることにします。)
http://trac-hacks.org/svn/graphvizplugin/0.11/
# svn export http://trac-hacks.org/svn/graphvizplugin/0.11/ graphvizplugin-0.11/
# cd graphvizplugin-0.11
# /usr/local/bin/python2.7 setup.py build
# /usr/local/bin/python2.7 setup.py bdist_egg
# cd dist
# /usr/local/bin/python2.7 /usr/local/bin/easy_install *.egg
httpdを再起動。
# service httpd restartきましたわーーーーーーーっ!(>ω<)(←
あとは、trac.iniに、[graphviz]セクションを。
cache_dir = htdocs/graphviz
これで・・・。
Wikiになんか書いてみる。
{{{
#!graphviz
digraph G {Hoge->Piyo}
}}}
おおー。
描画できました。
それにしても、Wikiでフローチャートが表現できるとは...すばらしいですね!
参考にさせていただいたサイト(感謝♪):
- GraphvizPlugin - Trac Hacks - Plugins Macros etc. - Trac
- Tracのwikiに図面を入れる - Basic
- tracとGraphvizPlugin - あぁ そうだった
0 件のコメント:
コメントを投稿
お気軽にコメントをお寄せください m(_ _)m♪
"コメントの記入者"欄から[名前/URL]を選ぶと、登録なしでコメント投稿していただけます。