Trac插件无法使用

1 投票
3 回答
1552 浏览
提问于 2025-04-16 22:18

在工作中,我们在几个内部维基和一个外部维基上使用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 个回答

0

这个帖子虽然有点老,但我之前也遇到过同样的问题:

确保你用来构建 .egg 文件的 Python 版本和你运行 Trac 时使用的版本是一样的!
不同版本的 Python 之间的兼容性在这里并不重要,因为 Trac 在加载 .egg 文件之前,会先从文件中读取 Python 版本的信息,以确保它是兼容的。

(小版本号之间的差异通常没关系,所以你可以用 Python 2.7.10 来运行一个用 2.7.3 构建的 .egg 文件,但如果是用 2.6.x 构建的,就不行。你可以查看 .egg 文件名中的版本号。)

0

检查一下你使用的Trac版本和下载的插件。与其用命令 python setup.py bdist_egg,不如试试 python setup.py install 这个命令。

1

听起来你把这个蛋(egg)做得很不错。在你把它复制到插件文件夹后,要把这个文件的拥有者和组改成你的网站服务器使用的账户(我猜你是在用Linux,因为你提到了chmod)。我不确定这是不是绝对必要,但对我来说一直这样做都没问题。

我可能误解了你的第4点,但听起来你把整个蛋文件夹都复制到了插件目录。其实只需要复制那个以.egg结尾的文件就可以了,它是一个独立的包。我觉得Trac不会在子目录里查找.egg文件。

重启你的网络服务器是重启Trac最简单的方法。实际上,我不知道还有其他方法可以做到这一点。

关于插件的问题,Trac的日志通常是获取信息的好地方。我建议把Trac的日志级别设置为DEBUG,然后关闭网络服务器。清空Trac日志文件的内容,然后重新启动网络服务器,等服务器完全恢复后再复制一份Trac的日志文件。这个过程要做两次:一次是安装了插件的时候,一次是不安装插件的时候。日志文件的差异应该能给你一个很好的问题指示。一旦你习惯了日志的正常样子,你就能直接阅读日志,而不需要清空它并生成两个版本。

顺便问一下,你用的是什么版本的Trac?

撰写回答