March 21st, 2008 by
Phil
This is a summary of what I got from the Trac installation instructions here, here, here and here. My life would have been easier if I was running Apache2, but for the site in question, I’m not.
The version numbers I am working with:
- apache - 1.3.34-4.1
- python - 2.4.4-2
- libapache-mod-python 2:2.7.11-2
- Trac 0.11b2
Install easy_install, followed by the Trac requirements:
$ easy_install Pygments
$ easy_install Genshi
$ easy_install Trac
$ easy_install sqlite
$ apt-get install libapache-mod-python
$ apt-get install python-pysqlite2
$ cd ~
$ mkdir trac/myprojectname
$ trac-admin trac/myprojectname initenv
(enter the details you need or just keep hitting to accept the defaults - it’s all configurable later)
Type the tracd line given to you at the end of the install and make sure it runs (probably need your IP at this point because it won’t bind to a hostname).
Add this inside your VirtualHost:
<Location /wherever/you/like>
SetHandler python-program
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /absolute/path/trac/myprojectname
PythonOption TracUriRoot /wherever/you/like
PythonDebug On
</Location>
Patch /usr/lib/python2.4/site-packages/Trac-0.11b2-py2.4.egg/trac/web/modpython_frontend.py with code from http://trac.edgewall.org/wiki/TracModPython2.7 (yes, it’s all needed) - the “Known Issues” at the end of the code apply, most notably “There may be a character set issue” - for me this manifested itself in the <title> element of the page with a “–” separating my project name from the word “Trac” rather than a long hypen.
Tagged: linux, python, tools, trac, web |
2 Comments »
March 17th, 2008 by
Phil
bzr get http://philwilson.org/code/wxvenus
wxVenus is, at the moment, a desktop tool for browsing the cache that a local Venus installation creates when it runs. It is written in wxPython and is dependent on lxml.

It is also the first Python program of greater than ten lines that I’ve ever written, and given that we’ve already established I am very bad at it, the code quality is very low.
The long-term intention is to provide a cross-platform desktop tool which uses either a local or remote Venus installation as its aggregator and data source. At the moment I am using Lighthouse to track progress, but the free account doesn’t let me expose my tickets publically (although I will use the API to do this) I’ve moved to Google code because Lighthouse was closed and my local Trac install was slower than you could possibly imagine.
Really this is a lesson in Bazaar, Python, wxWidgets and XML parsing. Hopefully I will end up with a tool I can use. So far I’m learning a lot :)
Tagged: bzr, python, syndication, wxvenus |
3 Comments »
November 26th, 2007 by
Phil
Whilst trying to parse some Atom (my Blogger backup) with libxml2 I appear to have run into the same problem that Aristotle hit two years ago in XPath vs the default namespace: easy things should be easy, to wit: The story is that you can’t match on the default namespace in XPath.
>> import libxml2
>> doc = libxml2.parseFile("/home/pip/allposts.xml")
>> results = doc.xpathEval("//feed")
>> len(results)
0
Unbelievable.
Immediate potential solutions:
- XSLT my Atom document to add “atom:” to all my default-namespaced elements
- use an entirely different method of parsing
- remove the atom namespace declaration from the top of the file
- something else
Option 3 looks like the only sane route to take in this one-off job, but I’m quite surprised that I have to do it at all.
Actually, this turned out to be my fault - I was parsing two documents at the same time, one with a namespace declaration set correctly (for parsing my Atom file), and one with no namespaces set. I used the latter for my xpath query, which clearly didn’t work - many thanks to everyone who left a comment!
Tagged: atom, blogger, libxml2, python |
11 Comments »