Mercurial обновлен, mod_wsgi работает старая версия

У меня есть VPS с Centos 5.5, установленный Python 2.6 после установки Python 2.5, mod_wsgi и Django 1.0 на CentOS 5 (cPanel), учебник и Mercurial 1.6 через легкую установку.

Теперь я хотел обновить до Mercurial 1.7.5, поэтому я легко установил его, и он, кажется, работает. По крайней мере, при использовании из терминала.

Я использую hgwebdir подтолкнуть / вытащить мои reposisotires через HTTP. Тем не менее, когда я пытаюсь просмотреть репозиторий, созданный с новым hg (1.7.5), я получаю страницу ошибки 500. Посмотрите в Apache error_log читает что-то о поддержке Dotencode

 RepoError: requirement 'dotencode' not supported,

Google говорит, что это проблема, когда старый hg пытается прочитать репозиторий, сделанный с новым hg,

Как я могу узнать, какие hg используется Apache / mod_wsgi? И как его обновить?

2 ответа

Решение

Просто чтобы прояснить, звучит так, будто вы БЫЛИ использовали mod_wsgi, скомпилированный с Python 2.5 (который имеет старую версию hg). Теперь вы пытаетесь запустить mod_wsgi с Python 2.6 (с hg 1.7.5).

Предполагая, что вы следовали инструкциям в статье, которую вы связали, вы заметите, что вы скомпилировали mod_wsgi для исходников в Python 2.5. mod_wsgi не запускает интерпретатор Python; вместо этого он напрямую обращается к источникам Python. Поэтому, если вы хотите, чтобы mod_wsgi работал с Python 2.6, вам придется перекомпилировать его с исходными кодами Python 2.6.

Вы можете выполнить те же действия, что и в статье, используя только исходные коды Python 2.6 вместо Python 2.5. Я скомпилировал mod_wsgi для Python 2.6 и раньше, и статья выглядит так, как надо.

Надеюсь, это поможет, и обязательно оставляйте комментарии, если у вас возникнут какие-либо проблемы.

Для меня это звучит как одна из двух вещей:

  • Вам необходимо перезапустить веб-сервер после установки новой версии Mercurial. Когда вы используете mod_wsgiApache будет хранить копию скрипта, работающего в памяти, чтобы он мог быстро обслуживать новые запросы. Так что, возможно, в памяти все еще работает Mercurial 1.6. Перезапуск Apache должен помочь.

  • Вы установили несколько версий Mercurial на машину. Попробуйте найти commands.py и посмотрите, найдете ли вы более одной версии. Затем удалите старую версию и переустановите ее, как рекомендует Redmumba.

Другие вопросы по тегам