Trac Update: ImportError: cannot import name compat

Heute hatte ich endlich mal ein wenig Zeit gefunden und wollte mich um die Dokumentation der MySMS Komponente kümmern,
da fiel mir auf, dass ich noch eine Beta Version der Trac Software auf http://mysms.joomlacoder.de installiert hatte.
Naja eigentlich wäre das ja jetzt der ideale Zeitpunkt ein Update auf die letzte stabile Version vorzunehmen.

Vorher habe ich natürlich das Changelog und die UPGRADE Doku gelesen und festgestellt, das es "eigentlich" keine Probleme machen sollte
von 0.11b auf 0.11.2 upzudaten. Kurz danach habe ich das aktuelle Paket wie folg installiert.

cd /tmp/
wget ftp://ftp.edgewall.com/pub/trac/Trac-0.11.2.1.tar.gz
gunzip Trac-0.11.2.1.tar.gz
tar -xvf Trac-0.11.2.1.tar
cd Trac-0.11.2.1
python setup.py install

Nun wollte ich mit die Seite natürlich anschauen und wurde mit einem "Internal Server Error" überrascht ;(. Mit einem flauen Magengefühl machte ich mich auf die
Ursache und fand folgenden Eintrag in meinem Log File:

[Sat Dec 06 13:12:58 2008] [error] [client 87.178.12.118] mod_python (pid=3687, interpreter='main_interpreter', phase='PythonHandler', handler='trac.web.modpython_frontend'): Application error
[Sat Dec 06 13:12:58 2008] [error] [client 87.178.12.118] ServerName: 'mysms.joomlacoder.de'
[Sat Dec 06 13:12:58 2008] [error] [client 87.178.12.118] DocumentRoot: '/usr/local/apache2/vhosts/joomlacoder'
[Sat Dec 06 13:12:58 2008] [error] [client 87.178.12.118] URI: '/'
[Sat Dec 06 13:12:58 2008] [error] [client 87.178.12.118] Location: '/'
[Sat Dec 06 13:12:58 2008] [error] [client 87.178.12.118] Directory: None
[Sat Dec 06 13:12:58 2008] [error] [client 87.178.12.118] Filename: '/usr/local/apache2/vhosts/joomlacoder/'
[Sat Dec 06 13:12:58 2008] [error] [client 87.178.12.118] PathInfo: ''
[Sat Dec 06 13:12:58 2008] [error] [client 87.178.12.118] Traceback (most recent call last):
[Sat Dec 06 13:12:58 2008] [error] [client 87.178.12.118] File "/usr/local/python/lib/python2.5/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch\n default=default_handler, arg=req, silent=hlist.silent)
[Sat Dec 06 13:12:58 2008] [error] [client 87.178.12.118] File "/usr/local/python/lib/python2.5/site-packages/mod_python/importer.py", line 1229, in _process_target\n result = _execute_target(config, req, object, arg)
[Sat Dec 06 13:12:58 2008] [error] [client 87.178.12.118] File "/usr/local/python/lib/python2.5/site-packages/mod_python/importer.py", line 1128, in _execute_target\n result = object(arg)
[Sat Dec 06 13:12:58 2008] [error] [client 87.178.12.118] File "/usr/local/python/lib/python2.5/site-packages/Trac-0.11.2.1-py2.5.egg/trac/web/modpython_frontend.py", line 148, in handler\n from trac.web.main import dispatch_request
[Sat Dec 06 13:12:58 2008] [error] [client 87.178.12.118] File "/usr/local/python/lib/python2.5/site-packages/Trac-0.11.2.1-py2.5.egg/trac/web/main.py", line 48, in \n from trac.web.chrome import Chrome
[Sat Dec 06 13:12:58 2008] [error] [client 87.178.12.118] File "/usr/local/python/lib/python2.5/site-packages/Trac-0.11.2.1-py2.5.egg/trac/web/chrome.py", line 40, in \n from trac.util import compat, get_reporter_id, presentation, get_pkginfo, \\

Dies Problem lies sich wie folgt lösen:

  • compat.py kopieren compat2.py
  • in der chrome.py alle comapt* Aufrufe mit compat2* ersetzten