代码之家  ›  专栏  ›  技术社区  ›  Larry OBrien

如何修复开始提供与python_egg_缓存相关错误的trac安装?

  •  1
  • Larry OBrien  · 技术社区  · 16 年前

    我们一直在使用trac进行任务/缺陷跟踪,并且进展顺利,但今天早上它开始提供500个错误。在Apache错误日志中,我得到一个堆栈跟踪,其最终结果是:

    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。但我也会遇到同样的错误(它仍然会说“egg cache directory current set to:\n\n/.python_eggs.”)

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

    5 回复  |  直到 16 年前
        1
  •  5
  •   agnul    16 年前

    根据他们的 bug tracking system .

    如果不是这样,您应该尝试将环境变量传递给Apache,因为在配置文件中执行setenv不起作用。添加类似

    export PYTHON_EGG_CACHE=/tmp/python_eggs
    

    对于用于启动Apache的脚本,应该可以使用。

        2
  •  1
  •   Community CDub    8 年前

    今年早些时候,我从Trac 10.4升级到0.11时遇到了同样的问题。为了这个问题的突然出现,一定发生了一些变化——更新了python或apache安装?

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

    我从来没有调查过根本原因是什么。AS agnul 说,这可能已经在随后的trac版本中修复。

        3
  •  1
  •   Simon    16 年前

    我和很多人打过架 PYTHON_EGG_CACHE 我从来没有找到正确的设置方法——Apache的envvars,httpd.conf(setenv和pythonoption),什么都没用。最后,我手动打开了所有的python鸡蛋,只剩下两三个了——问题解决了。我从来都不明白为什么人们一开始压缩文件的重量不超过几千字节…

        4
  •  0
  •   Sam Corder    16 年前

    我也有同样的问题。在我的例子中,目录不在那里,所以我创建了目录并将其转移给Apache用户(我的Centos4.3框中的Apache)。然后确保它对目录具有读写权限。如果拥有该目录的组包含Apache用户,则可以通过授予rw对该目录的权限来实现。一个简单的ps aux grep httpd应该显示您的服务器正在运行的帐户(如果您不知道)。如果您在查找目录时遇到问题,请记住ls命令上的-a,因为它是一个“隐藏”目录。

        5
  •  0
  •   Dana the Sane    16 年前

    我发现在站点配置中使用pythonoption指令 没有 工作,但塞特温做到了。不过,环境变量路由也可以工作。