Trac插件无法使用
在工作中,我们在几个内部维基和一个外部维基上使用Trac。最近,我们发现需要一个新的插件。在看了一些教程后,我们尝试安装一个插件,想确保它能正常工作,但结果并没有成功。我们一直在努力搞明白问题出在哪里。下面我会列出我在尝试让它工作时所做的步骤和各种尝试。
1) 我去了trac-hacks网站,下载了他们的hello world插件,觉得用他们的代码应该不会出错。
2) 我在安装了Trac的机器上用python setup.py bdist_egg编译并生成了一个egg文件,以确保使用的是相同的Python版本。
3) 然后我把它复制到/trac所在目录/plugins/文件夹,并把这个egg文件的权限设置为755。
4) 接着我重启了http,找不到更好的重启Trac的方法,所以这可能是我出问题的地方。结果还是不行,于是我删除了plugins中的egg文件夹。
5) 我通过trac->管理->插件上传了它,然后又重启了一次httpd。还是没用。
6) 我意识到需要编辑trac.ini文件,在组件下添加了helloworld.* = enabled,然后重启了web服务器。
可能是我哪里做错了,但任何帮助都非常感谢!
这个hello world插件来自trac-hack,基本上就是显示“hello world”和一个按钮。没有提供任何错误信息,所以在网上搜索很困难。
我假设它是用root用户运行的,而我也是用这个用户构建的。我会看看是不是其他用户在使用它,快速看了一下,似乎没有其他人会用到它。我只把egg文件复制到了插件文件夹,还在其他地方设置了一个文件夹并构建了它,然后复制到插件文件夹。知道我这样做是对的我很高兴,因为查找关于如何重启Trac的文档几乎没有,他们只是说重启Trac或重启apache。我明天会再看看日志。谢谢大家的回复!另外,我们使用的是trac .12.1。
查看日志文件后,似乎根本没有加载插件,找不到任何加载的记录或错误信息。我们有几个Trac网站用于不同的项目,其中一个网站已经安装了插件,所以我去那里把测试插件放上去,查看日志,结果也没有成功。所以我得出结论,可能是插件本身有问题,或者是我们已经有的东西出了问题,而不是我做错了。我想我会尝试自己做一个并测试一下。谢谢大家的帮助!
3 个回答
这个帖子虽然有点老,但我之前也遇到过同样的问题:
确保你用来构建 .egg 文件的 Python 版本和你运行 Trac 时使用的版本是一样的!
不同版本的 Python 之间的兼容性在这里并不重要,因为 Trac 在加载 .egg 文件之前,会先从文件中读取 Python 版本的信息,以确保它是兼容的。
(小版本号之间的差异通常没关系,所以你可以用 Python 2.7.10 来运行一个用 2.7.3 构建的 .egg 文件,但如果是用 2.6.x 构建的,就不行。你可以查看 .egg 文件名中的版本号。)
检查一下你使用的Trac版本和下载的插件。与其用命令 python setup.py bdist_egg,不如试试 python setup.py install 这个命令。
听起来你把这个蛋(egg)做得很不错。在你把它复制到插件文件夹后,要把这个文件的拥有者和组改成你的网站服务器使用的账户(我猜你是在用Linux,因为你提到了chmod
)。我不确定这是不是绝对必要,但对我来说一直这样做都没问题。
我可能误解了你的第4点,但听起来你把整个蛋文件夹都复制到了插件目录。其实只需要复制那个以.egg结尾的文件就可以了,它是一个独立的包。我觉得Trac不会在子目录里查找.egg文件。
重启你的网络服务器是重启Trac最简单的方法。实际上,我不知道还有其他方法可以做到这一点。
关于插件的问题,Trac的日志通常是获取信息的好地方。我建议把Trac的日志级别设置为DEBUG
,然后关闭网络服务器。清空Trac日志文件的内容,然后重新启动网络服务器,等服务器完全恢复后再复制一份Trac的日志文件。这个过程要做两次:一次是安装了插件的时候,一次是不安装插件的时候。日志文件的差异应该能给你一个很好的问题指示。一旦你习惯了日志的正常样子,你就能直接阅读日志,而不需要清空它并生成两个版本。
顺便问一下,你用的是什么版本的Trac?