如何安装Trac插件以及什么是Python Egg?
在Trac的管理页面中,有一个选项可以安装插件。这个选项要求你上传一个Python蛋(Python egg)。
这本来没什么问题,但我发现所有找到的Trac插件要么是普通的.py文件,要么是zip文件,跟上传功能不兼容(我试过了)。
这让我有了一堆问题:
- 有没有以Python蛋形式存在的Trac插件?
- 什么是(Trac兼容的)Python蛋?
- 把一个.py文件重新打包成Trac兼容的Python蛋难吗?
- 如果不难,那应该怎么做呢?
2 个回答
我已经有一年没用trac了,但我记得大部分插件都是通过subversion获取的,并且已经打包成了一个叫“egg”的格式(在Python世界里,这种格式有点像安装程序,不过我对这个概念不太熟悉)。
大部分插件可以在 http://trac-hacks.org/ 找到,安装插件最简单的方法是
easy_install http://svn.domain.tdl/path/to/plugin/
这个文件夹里应该包含一个setup.py和一个setup.cfg文件。easy_install会从svn中获取这些文件并安装插件。你可以在这里找到详细信息:http://trac.edgewall.org/wiki/TracPlugins
如果插件需要更改数据库,你需要从控制台调用
trac-admin upgrade
。http://trac.edgewall.org/wiki/TracAdmin
如果我没记错的话,通过网页界面安装插件是本地安装(只对当前实例有效),而easy_install是全局安装(对所有运行的trac网站有效),而且这是更常见的安装插件方式。
提示:每次安装插件后,你都需要重启trac。
提示2:大多数插件不会告诉你怎么安装,只会给你一个svn根目录的链接。你只需要浏览svn文件夹,找到包含setup.py的文件夹。剩下的工作就用easy_install来完成。
举个例子:
插件:http://trac-hacks.org/wiki/GoogleChartPlugin
维基页面告诉你: 你可以通过Subversion从这里获取GoogleChartPlugin,或者用Trac浏览源代码。
其中here
链接到 http://trac-hacks.org/svn/googlechartplugin/
这个svn里包含两个版本。浏览到 http://trac-hacks.org/svn/googlechartplugin/0.11/trunk/ 并复制路径。
然后执行
easy_install http://trac-hacks.org/svn/googlechartplugin/0.11/trunk/
下面是你问题的回答,按顺序来。
- Python的“egg”是二进制包,里面包含了应用程序的代码和一些元数据。它和deb包或rpm包在这方面没什么太大区别。实际上,egg就是一个压缩文件,里面有上述提到的文件,按照特定的名称和结构排列。如果你想了解更多关于egg的内容(格式和如何创建),可以参考这个链接:http://www.ibm.com/developerworks/library/l-cppeak3.html。不过这个信息可能有点过时,因为Python打包的未来(和现在)有点不太明确。
- Trac插件是一个Python程序,它使用Trac插件API来扩展Trac的功能。这个插件可以打包成egg格式。
- 如果你的包结构正确,并且里面有一个setuptools/distribute的
setup.py
文件,那么你只需要运行命令python setup.py bdist_egg
,就可以为你创建一个.egg文件。关于这个的详细信息,可以参考这个链接(虽然有点过时,但内容完整)和这个链接(更新一些,但仍在完善中)。Trac Growl插件的文档页面也提到了这个。 - 请参考上面提到的内容。