您如何修复开始出现与 PYTHON_EGG_CACHE 相关的错误的 Trac 安装?
Posted
技术标签:
【中文标题】您如何修复开始出现与 PYTHON_EGG_CACHE 相关的错误的 Trac 安装?【英文标题】:How do you fix a Trac installation that begins giving errors relating to PYTHON_EGG_CACHE? 【发布时间】:2010-09-17 22:24:30 【问题描述】:我们一直在使用 Trac 进行任务/缺陷跟踪,一切进展顺利,但今天早上它开始出现 500 错误。查看 Apache error_log,我得到了一个堆栈跟踪,最终结果是:
PythonHandler trac.web.modpython_frontend: ExtractionError:无法将文件提取到鸡蛋缓存 尝试将文件提取到 Python egg 时发生以下错误 缓存: [Errno 13] 权限被拒绝:'/.python-eggs' Python egg 缓存目录当前设置为: /.python-鸡蛋 也许您的帐户没有对该目录的写入权限?你可以 通过设置 PYTHON_EGG_CACHE 环境更改缓存目录 指向可访问目录的变量所以我明确地将 PYTHON_EGG_CACHE 设置为 /srv/trac/plugin-cache。我重新启动了 Apache。然而我得到了同样的错误(它仍然说“鸡蛋缓存目录当前设置为:\n\n /.python_eggs。”)
我应该如何进行?重新安装Trac是最简单的事情吗?如果我走这条路,我需要采取哪些步骤来确保我不会丢失现有数据?
【问题讨论】:
【参考方案1】:根据他们的bug tracking system,这应该在 0.11 中修复。
如果不是这种情况,您应该尝试将环境变量传递给 apache,因为在配置文件中执行 SetEnv 不起作用。添加类似
的内容export PYTHON_EGG_CACHE=/tmp/python_eggs
你用来启动 apache 的脚本应该可以工作。
【讨论】:
【参考方案2】:我在今年早些时候从 Trac 10.4 升级到 0.11 时遇到了同样的问题。一定是发生了一些变化,这个问题才突然出现——更新的 Python 或 Apache 安装?
我不记得我试图解决这个问题的所有排列,但我最终不得不使用 SetEnv PYTHON_EGG_CACHE /.python-eggs
并创建具有 777 权限的 /.python-eggs。这可能不是最好的解决方案,但它解决了问题。
我从未调查过根本原因是什么。正如agnul 所说,这可能已在后续的 Trac 版本中得到修复。
【讨论】:
【参考方案3】:我与PYTHON_EGG_CACHE
进行了多次战斗,但我从未弄清楚设置它的正确方法 - apache 的 envvars、httpd.conf(SetEnv 和 PythonOption),没有任何效果。最后我只是手动解压了所有的 python 鸡蛋,反正只有两三个 - 问题消失了。我一直不明白为什么人们一开始就压缩不超过几千字节的文件...
【讨论】:
【参考方案4】:我遇到了同样的问题。在我的情况下,该目录不存在,所以我创建并将其分配给 apache 用户(我的 centos 4.3 盒子上的 apache)。然后确保它对该目录具有读写权限。如果拥有该目录的组包含 apache 用户,您可以通过授予该目录的 rw 权限来解决问题。如果您不知道,一个简单的 ps aux|grep httpd 应该会显示您的服务器在哪个帐户下运行。如果找不到目录,请记住 ls 命令上的 -a,因为它是“隐藏”目录。
【讨论】:
【参考方案5】:我发现在站点配置中使用 PythonOption 指令不起作用,但 SetEnv 起作用了。环境变量路由也可以。
【讨论】:
以上是关于您如何修复开始出现与 PYTHON_EGG_CACHE 相关的错误的 Trac 安装?的主要内容,如果未能解决你的问题,请参考以下文章