В системах Linux пакетный Vim обычно имеет только один из них python
или python3
включен. Можно включить оба (используя python/dyn
и python3/dyn
), но во время сеанса может использоваться только один. Это обсуждение списка рассылки гласило :
Это зависит от того, как создаются библиотеки Python. В системах на основе Debian (по причинам, которые я не вспоминаю не случайно), они построены таким образом, что для получения доступа к символам необходимо использовать RTLD_GLOBAL. Это предотвращает загрузку libpython2.x и libpython3.x в одном процессе.
Что можно сделать, чтобы включить загрузку обоих в одном сеансе?
Варианты, которые я вижу:
- Перестройте пакеты Python {2,3}, чтобы
RTLD_GLOBAL
(что бы это ни было) не нужно. - Каким-то образом загрузите библиотеку, чтобы Vim выгружал ее раньше (?!). (Это вообще возможно?)
Для любых деталей дистрибутива, предположим, в порядке возрастания специфичности:
- Debian на основе
- Ubuntu
- Ubuntu 14.04
- Или Arch Linux, если система на основе Debian слишком сложна.
Обратите внимание, что у меня есть Vim для сборки с поддержкой динамической загрузки для обоих, поэтому сборка Vim не проблема.