Назад | Перейти на главную страницу

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 толкать / тянуть мои репозитории через HTTP. Однако, когда я пытаюсь просмотреть репозиторий, созданный с новым hg (1.7.5), я получаю страницу ошибки 500. Взгляд в Apache error_log читает что-то о поддержке dotencode

 RepoError: requirement 'dotencode' not supported,

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

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

Чтобы уточнить, похоже, что вы БЫЛИ использовали 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_wsgi, Apache будет хранить копию выполняемого скрипта в памяти, чтобы он мог быстро обрабатывать новые запросы. Так что в памяти может еще работать Mercurial 1.6. Перезапуск Apache должен помочь.

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