##master-page:HelpOnUpdatingPython
##master-date:2009-11-20T14:35:31Z
#acl -All:write Default
#format wiki
#language ru

== Обновление Python ==

В случае изменения интерпретатора Python, используемого для запуска МойнМойн, рекомендуется учитывать следующие факторы:

=== Расположение каталога MoinMoin ===

/* (!) Важно не путать: МойнМойн здесь — название вики-сервера, !MoinMoin — название каталога с Python-скриптами. Следовательно, в фразе «каталог МойнМойн» указывается принадлежность каталога (которых, на самом деле, несколько — помимо каталога со скриптами есть ещё статика, которая обычно находится в `/usr/share/moin` и собственно каталог с экземпляром вики (там обычно находятся конфигурация и стартовый скрипт), а в фразе «каталог !MoinMoin» — его название (в Python имена пакетов и каталогов сопоставляются один в один, весь код МойнМойн находится в пакете MoinMoin). */

Стандартный скрипт установки `setup.py` при настройках по умолчанию устанавливает файлы МойнМойн в каталог `site-packages` текущего интерпретатора Python по умолчанию (например, `/usr/lib/python2.4/site-packages`). В случае миграции на другой интерпретатор Python необходим установить (скопировать) файлы МойнМойн в каталог `site-packages` нового интерпретатора (`lib/pythonX.X/site-packages`). Если МойнМойн установлен в другое место и соответствующим образом настроена переменная `sys.path`, то этот пункт можно пропустить.

=== Прекомпилированные файлы Python (.pyc) ===

Python не гарантирует совместимость байт-кода, содержащегося в файлах `*.pyc` между версиями. В случае изменения интерпретатора Python необходимо повторно скомпилировать скрипты на Python. Это можно сделать с помощью следующей команды:
{{{
python -c "import compileall; compileall.compile_dir('/путь/к/каталогу/MoinMoin')"
}}}

В случае повторной установки МойнМойн для нового интерпретатор этот шаг не требуется, так как он выполняется при установке скриптом `setup.py`.

=== Очистка кэша страниц ===

Кэш страниц, необходимый для быстрой обработки повторяющихся запросов, использует хранится в виде байт-кода Python. Во избежание проблем с совместимостью рекомендуется очистить его путём ручного удаления всех файлов в `data/pages/*/cache` и `underlay/pages/*/cache/`.