at posts/single.html

さくらインターネットで Subversion + Trac

このサーバで Trac を使えるようにしようと思い、 「さくらインターネットにTracを構築する」を参考にセットアップしている。 手順が分かりやすく書かれているので、特に迷うところは無かった。

でも、 trac-admin を実行してリポジトリをインポートするときに、こんなエラーが出る。

$ trac-admin /home/machu/var/trac/tdiary_plugin initenv
Creating a new Trac environment at /home/machu/var/trac/tdiary_plugin
Project Name [My Project]> tDiary plugins
Database connection string [sqlite:db/trac.db]>
Path to repository [/var/svn/test]> /home/machu/svn/tdiary_plugin
Templates directory [/home/machu/share/trac/templates]>

Creating and Initializing Project
 (中略)
Indexing repository
Failed to initialize environment. No module named thread
Traceback (most recent call last):
  File "/home/machu/lib/python2.4/site-packages/trac/scripts/admin.py", line 616, in do_initenv
    repos = self.__env.get_repository()
  File "/home/machu/lib/python2.4/site-packages/trac/env.py", line 155, in get_repository
    from trac.versioncontrol.svn_fs import SubversionRepository
  File "/home/machu/lib/python2.4/site-packages/trac/versioncontrol/svn_fs.py", line 25, in ?
    from svn import fs, repos, core, delta
  File "/home/machu/lib/svn-python/svn/fs.py", line 19, in ?
    from libsvn.fs import *
  File "/home/machu/lib/svn-python/libsvn/fs.py", line 29, in ?
    import core
  File "/home/machu/lib/svn-python/libsvn/core.py", line 2903, in ?
    import threading
  File "/usr/local/lib/python2.4/threading.py", line 6, in ?
    import thread
ImportError: No module named thread

さくらでは Thread モジュールが入っていないことが原因みたい。 何で、元の例では動いているんだろう。 最新のサーバ (www700番台) と古いサーバ (www200番台) で設定が違うのかな。

仕方が無いので、dummy_threading を使う方法を参考に、 lib/svn-python/libsvn/core.py を以下のように書き換えたら動いた。 これで本当に大丈夫かどうか良く分かんないけど。

@@ -2900,7 +2900,10 @@
         _swig_setattr(self, apr_hash_t,self.__class__,apr_hash_t)
 _core.apr_hash_t_swigregister(apr_hash_tPtr)

-import threading
+try:
+   import threading
+except ImportError:
+   import dummy_threading as threading

 application_pool = None
 application_pool_lock = threading.Lock()

関連する日記