ページ更新: 2011-10-14 (金) (3872日前)
(2008-10-17作成) 未完。作業中。 目次 [編集]参考 #
ついでにこちらも入れる: (2011-10-14) json.py, simple-json に関する変更点 [編集]インストール #(Debian GNU/Linux 4.0) [編集]json-pyのインストール #zipを取得して、展開する: $ wget http://downloads.sourceforge.net/json-py/json-py-3_4.zip $ unzip json-py-3_4.zip -d json-py-3.4 Archive: json-py-3_4.zip inflating: json-py-3.4/json.py inflating: json-py-3.4/jsontest.py inflating: json-py-3.4/readme.txt inflating: json-py-3.4/changes.txt inflating: json-py-3.4/license.txt inflating: json-py-3.4/minjson.py Pythonのバージョンを調べる。Python 2.6だと標準でjsonライブラリ(json-pyとは違うもの)が入っているので、悩む羽目になると思うので: $ python -V Python 2.4.4 site-packagesディレクトリの位置を調べる: $ python -c 'import trac; print trac.__path__' ['/usr/lib/python2.4/site-packages/Trac-0.11.1.ja1-py2.4.egg/trac'] この環境では「/usr/lib/python2.4/site-packages/」だと判明した。 site-packageにコピーする: $ sudo cp json-py-3.4/json.py /usr/lib/python2.4/site-packages/ $ sudo cp json-py-3.4/minjson.py /usr/lib/python2.4/site-packages/ importして、パスを調べてみる: $ python -c 'import json; print json.__file__' /usr/lib/python2.4/site-packages/json.py $ python -c 'import minjson; print minjson.__file__' /usr/lib/python2.4/site-packages/minjson.py[編集] プラグインのインストール #TicketExtPlugin, CustomFieldAdminPlugin, ついでに CompleteUserをインストールする: $ sudo easy_install http://trac-hacks.org/svn/customfieldadminplugin/0.11/ $ sudo easy_install http://trac-hacks.org/svn/ticketextplugin/0.11/ $ sudo easy_install http://svn.sourceforge.jp/svnroot/shibuya-trac/plugins/completeuserplugin/trunk たぶん、これでインストール完了。 [編集]Windowsの場合 #Windows XP Pro SP3, Python 2.5.2, setuptools 0.6c9dev-r66389 (easy_install-script.pyに書いてある), Trac-0.11.1.ja1ではこんな感じ: C:> python -V Python 2.5.2 http://downloads.sourceforge.net/json-py/json-py-3_4.zip を入手して、展開して、json.pyとminjson.pyをc:\Python25\lib\site-packagesにコピー プラグインのインストール: C:> easy_install http://trac-hacks.org/svn/customfieldadminplugin/0.11/ C:> easy_install http://trac-hacks.org/svn/ticketextplugin/0.11/ C:> easy_install http://svn.sourceforge.jp/svnroot/shibuya-trac/plugins/completeuserplugin/trunk ★ついでに入れた[編集] 設定 #(いまんとこ略) [編集]エラーの調査 (Windows) #Windowsにて、Tracの「管理」でプラグインを有効にしたところ、次のエラーが出た: Trac detected an internal error: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128) (略) Python Traceback Most recent call last: File "c:\python25\lib\site-packages\Trac-0.11.1.ja1-py2.5.egg\trac\web\main.py", line 424, in _dispatch_request File "c:\python25\lib\site-packages\Trac-0.11.1.ja1-py2.5.egg\trac\web\main.py", line 198, in dispatch File "c:\python25\lib\site-packages\Trac-0.11.1.ja1-py2.5.egg\trac\admin\web_ui.py", line 95, in process_request File "c:\python25\lib\site-packages\Trac-0.11.1.ja1-py2.5.egg\trac\admin\web_ui.py", line 94, in _panel_order Code fragment: 89. return -1 90. elif p2[0] == 'general': 91. if p1[0] == 'general': 92. return cmp(p1[1:], p2[1:]) 93. return 1 94. return cmp(p1, p2) 95. panels.sort(_panel_order) 96. 97. cat_id = req.args.get('cat_id') or panels[0][0] 98. panel_id = req.args.get('panel_id') 99. path_info = req.args.get('path_info') Local variables: Name Value p1 ('ticket', ... p2 ('ticket', u'\u30c1\u30b1\u30c3\u30c8\u30b7\u30b9\u30c6\u30e0', ... System Information: User Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 (.NET CLR 3.5.30729) Trac: 0.11.1.ja1 Python: 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] setuptools: 0.6c9 SQLite: 3.3.4 pysqlite: 2.3.2 Genshi: 0.5.1 mod_python: 3.3.1 Pygments: 0.11.1 Subversion: 1.5.3 (r33570) jQuery: 1.2.6 このトレースバックでは、直接の原因はわからない。 しかし、「管理」の画面でエラーが出たこと、あと前後のソースコードを見ると、管理画面に項目を挿入する部分らしいことがわかる。 とりあえず、確認を容易にするために、プラグインをZIP展開済み(-Z)の状態で上書きインストール(-U)する: C:> easy_install -Z -U http://trac-hacks.org/svn/ticketextplugin/0.11/ Downloading http://trac-hacks.org/svn/ticketextplugin/0.11/ Doing subversion checkout from http://trac-hacks.org/svn/ticketextplugin/0.11/ to c:\temp\easy_install-4px0ud\0.11 Processing 0.11 Running setup.py -q bdist_egg --dist-dir c:\temp\easy_install-4px0ud\0.11\egg-dist-tmp-av08gb ticketextplugin 0.2-r4457 is already the active version in easy-install.pth Installed c:\python25\lib\site-packages\ticketextplugin-0.2_r4457-py2.5.egg Processing dependencies for ticketextplugin==0.2-r4457 Finished processing dependencies for ticketextplugin==0.2-r4457 そして、c:\python25\lib\site-packages\ticketextplugin-0.2_r4457-py2.5.egg\ のPythonスクリプトのうち、 管理画面を扱うっぽい template_admin.py を見て、ascii文字以外の文字を含む部分を調べて、次のように変更した: # IAdminPanelProvider method def get_admin_panels(self, req): if req.perm.has_permission('TRAC_ADMIN'): # localization locale = TicketExtUtil(self.env).get_locale(req) if locale in ['ja', 'ja-JP']: - yield ('ticket', 'チケットシステム', 'template_admin', 'チケットテンプレート') + yield ('ticket', u'チケットシステム', 'template_admin', u'チケットテンプレート') else: yield ('ticket', 'Ticket System', 'template_admin', 'Ticket Template') Apacheを再起動して、再度画面を見たところ、エラーが解消した。 [編集]エラーの調査 (Debian) #環境は Debian GNU/Linux 4.0 (etch) + etch-backports。 この環境でも、Windowsと同じエラーが出た。Windowsと同じ修正でエラーが解消した。 Oops Trac detected an internal error: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128) Python Traceback Most recent call last: File "/usr/lib/python2.4/site-packages/Trac-0.11.1.ja1-py2.4.egg/trac/web/main.py", line 424, in _dispatch_request File "/usr/lib/python2.4/site-packages/Trac-0.11.1.ja1-py2.4.egg/trac/web/main.py", line 198, in dispatch File "/usr/lib/python2.4/site-packages/Trac-0.11.1.ja1-py2.4.egg/trac/admin/web_ui.py", line 95, in process_request File "/usr/lib/python2.4/site-packages/Trac-0.11.1.ja1-py2.4.egg/trac/admin/web_ui.py", line 94, in _panel_order Code fragment: 89. return 90. elif p2[0] == 'general':-1 91. if p1[0] == 'general': 92. return cmp(p1[1:], p2[1:]) 93. return 1 94. return cmp(p1, p2) 95. panels.sort(_panel_order) 96. 97. cat_id = req.args.get('cat_id') or panels[0][0] 98. panel_id = req.args.get('panel_id') 99. path_info = req.args.get('path_info') Local variables: System Information: User Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; FDM; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022) Trac: 0.11.1.ja1 Python: 2.4.4 (#1, Apr 15 2008, 23:37:53) [GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] setuptools: 0.6c3 SQLite: 3.3.8 pysqlite: 2.3.2 Genshi: 0.5.1 mod_python: 3.2.10 Pygments: 0.10 Subversion: 1.4.2 (r22196) jQuery: 1.2.3[編集] このエラーが起こる環境と起こらない環境の違い(推測) #このエラーが起こる環境と起こらない環境が存在するようだ。 (少なくとも、作者氏の環境では起こっていない) 推測だが、エラーが起こらない環境では、site-packages/sitecustomize.py が用意され、sys.setdefaultencoding("utf-8")と記入されているのではないだろうか。 |