Wiki Page Content

Обновление 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/.