mercurial 已更新,mod_wsgi 运行旧版本

mercurial 已更新,mod_wsgi 运行旧版本

我有一个安装有 Centos 5.5 的 VPS,安装了 Python 2.6在 CentOS 5(cPanel)上安装 Python 2.5、mod_wsgi 和 Django 1.0教程和 Mercurial 1.6 通过 easy-install 进行安装。

现在我想更新到 Mercurial 1.7.5,所以我轻松安装了它,它似乎可以工作。至少从终端使用时是这样。

我一直使用hgwebdirHTTP 来推送/拉取我的存储库。但是,当我尝试查看使用 new hg(1.7.5) 创建的存储库时,我得到了 500 错误页面。查看 Apache 时,error_log会读到一些关于 dotencode 支持的内容

 RepoError: requirement 'dotencode' not supported,

谷歌表示,这是一个当旧版本hg尝试读取用新版本创建的存储库时出现问题hg

我如何才能找出hgApache/ 使用了哪个mod_wsgi?以及如何更新它?

答案1

需要澄清的是,听起来您使用的是针对 Python 2.5(具有旧版本的 hg)编译的 mod_wsgi。您现在正尝试使用 Python 2.6(具有 hg 1.7.5)运行 mod_wsgi。

假设您按照链接的文章中的说明进行操作,您会注意到您根据 Python 2.5 中的源代码编译了 mod_wsgi。mod_wsgi 不会启动 Python 解释器;相反,它直接调用 Python 源代码。因此,如果您希望 mod_wsgi 与 Python 2.6 一起使用,则必须使用 Python 2.6 源代码重新编译它。

您可以按照本文中的相同步骤操作,但要使用 Python 2.6 的源代码,而不是 Python 2.5。我之前曾针对 Python 2.6 编译过 mod_wsgi,本文看起来非常准确。

希望这会有所帮助,如果您遇到任何问题,请务必发表评论。

答案2

对我来说,这听起来像是以下两件事之一:

  • 安装新版本的 Mercurial 后,您需要重新启动 Web 服务器。使用 时mod_wsgi,Apache 会在内存中保留一份正在运行的脚本副本,以便快速处理新请求。因此,内存中可能仍有 Mercurial 1.6 在运行。重新启动 Apache 应该会有所帮助。

  • 您在机器上安装了多个版本的 Mercurial。尝试搜索commands.py并查看是否找到多个版本。然后删除旧版本并按照 Redmumba 的建议重新安装。

相关内容