自0.9版本,Trac支持通过插件来扩展内部的功能。插件的功能来自于Trac的组建架构(component architecture) 。
Trac中的插件是以setuptools
包装成一个称为“egg”的包,它与Java™的JAR文件类似,不过是用于Python的。为了使用egg,我们必须安装SetupTools(0.6版本)。我们可以下载ez_setup.py这个自引导模块来安装setuptools。下载后(假设文件放在c:\python24\目录)执行如下图的命令:
从图中我们可以看到,ez_setup先从网上下载setuptools,然后安装,所以使用这种方法安装需要你的机器连上互联网。
如果使用ez_setup.py安装setuptools失败或不能联网,我们也能从PyPI网站下载,然后手工安装。
在Trac中,插件可以放在两个地方,Trac环境的目录(为单个项目安装插件)或全局目录(0.10及以后版本提供)(为全部项目安装插件)。
Trac插件的形式
1. egg
大部分的插件都是以egg包的形式存在的,其实这个包是zip格式的,我们可以用winzip、winrar等压缩用具打开。如果有egg最好了,可以直接使用。
2. 源码
有些插件没有提供egg包,直接给出了源码。我们可以直接使用源码安装插件,也自己自己构建成egg包。
如果有插件的源码,如何构建egg呢?
python setup.py bdist_egg
然后,我们将得到一个*.egg文件。
详情见下图:
安装Trac插件
为单个项目
一旦我们有了插件包(egg包),我们只需要把它拷贝到Trac项目环境的“plugins”目录下。同时,确保web服务器有足够的权限可以访问。需要注意的是,Python的版本必须匹配。
为所有的项目
上面的介绍是将插件安装到单个Trac项目中,也就是把egg文件拷贝到项目的插件目录下。这里将介绍如何为所有的Trac项目(包括以后建立的项目)安装插件,根据插件源的不同有两种方式
使用.egg文件
如果我们有插件的.egg文件,很简单,使用easy_install安装即可(具体的介绍见这里)
easy_install *.egg
从源代码安装
easy_install能够网络安装,只需要指定一个subversion的仓库URL路径或者tarball/zip的路径。比如,WebAdmin可以这样安装
easy_install http://svn.edgewall.com/repos/trac/sandbox/webadmin
启动插件
我们还需要通过修改trac.ini文件来启动插件,一般都是在trac.ini文件的[components]区域,比如:
[components] webadmin.* = enabled 关于在trac.ini做怎样的修改,请查看插件的相关文档。也可以在插件的源代码中的__init__.py看到。 注意:安装后需要重启Web服务器。
如何知道setuptools已经正确的安装了?
执行下面的命令:
python -c "import pkg_resources"
如果没有输出,setuptools已经安装了,否则,你需要安装setuptools。
Python egg在文件名中注明了Python的版本。比如,MyPlugin-1.0-py2.4.egg是针对Python 2.4的,如果Trac运行在不用的Python版本上(比如2.3或者2.5),这个egg将不会被载入。
本文基本上都是翻译自Trac官网的Trac Plugins,并有所删减。在这里只是说了如何安装Trac插件,并没有举例。在本系列的下一篇《使用WebAdmin插件管理Trac项目》里,将详细的演示如何安装WebAdmin这个非常棒的Trac插件。
在这里有很多值得推荐的Trac插件,更多的可以查看Trac插件的官方网站 。
参考文献: Trac的官方指南中的Trac Plugins。