如何修复开始提供与PYTHON_EGG_CACHE相关的错误的Trac安装?

时间:2008-10-18 16:51:02

标签: python configuration trac python-egg-cache

我们一直在使用Trac进行任务/缺陷跟踪,事情进展顺利,但今天早上它开始提供500错误。查看Apache error_log,我得到一个最终的堆栈跟踪:

PythonHandler trac.web.modpython_frontend:
  ExtractionError: Can't extract file(s) to egg cache

The following error occurred while trying to extract file(s) to the Python egg
cache:

  [Errno 13] Permission denied: '/.python-eggs'

The Python egg cache directory is currently set to:

  /.python-eggs

Perhaps your account does not have write access to this directory?  You can
change the cache directory by setting the PYTHON_EGG_CACHE environment
variable to point to an accessible directory

所以我明确地将PYTHON_EGG_CACHE设置为/ srv / trac / plugin-cache。我重新启动了Apache。然而我得到了同样的错误(它仍然说“鸡蛋缓存目录当前设置为:\ n \ n /.python_eggs。”)

我该怎么办?重新安装Trac最简单的事情是什么?如果我走这条路,我需要采取哪些措施来确保我不会丢失现有数据?

5 个答案:

答案 0 :(得分:5)

根据bug tracking system,应该在0.11中修复。

如果不是这种情况,您应该尝试将环境var传递给apache,因为在配置文件中执行SetEnv不起作用。添加类似

的内容
export PYTHON_EGG_CACHE=/tmp/python_eggs

到用于启动apache的脚本应该可以正常工作。

答案 1 :(得分:1)

今年早些时候从Trac 10.4升级到0.11时遇到了同样的问题。刚刚突然出现这个问题的一些东西必须改变 - 更新的Python或Apache安装?

我不记得我试图解决这个问题的所有排列,但我最终不得不使用SetEnv PYTHON_EGG_CACHE /.python-eggs并使用777权限创建/.python-eggs。这可能不是最好的解决方案,但它解决了问题。

我从未调查过根本原因。正如agnul所述,这可能已在随后的Trac版本中得到修复。

答案 2 :(得分:1)

我与PYTHON_EGG_CACHE打了很多次战斗,我从未想出设置它的正确方法 - apache的envvars,httpd.conf(SetEnv和PythonOption),没有任何效果。最后我只是手动打开所有的蟒蛇蛋,无论如何只有两三个 - 问题消失了。我从来没有理解为什么人们在第一时间压缩不超过几千字节的文件......

答案 3 :(得分:0)

我遇到了同样的问题。在我的情况下,目录不在那里,所以我创建并chown'ed它到apache用户(我的centos 4.3框上的apache)。然后确保它对目录具有读写权限。如果拥有该目录的组包含apache用户,则可以通过向该目录授予rw权限。一个简单的ps aux | grep httpd应该显示你的服务器运行的帐户,如果你不知道它。如果您在找到目录时遇到问题,请记住ls命令中的-a,因为它是一个“隐藏”目录。

答案 4 :(得分:0)

我发现在网站config 中使用PythonOption指令没有工作,但是SetEnv没有。环境变量路线也可以使用。