En los sistemas Linux, Vim empaquetado generalmente solo tiene uno de los dos python
o está python3
habilitado. Es posible que ambos estén habilitados (usando python/dyn
y python3/dyn
), pero durante una sesión, solo se puede usar uno. Esta discusión de la lista de correo decía :
Depende de cómo se construyan las bibliotecas de Python. En los sistemas basados en Debian (por razones que no recuerdo de antemano), están construidos de tal manera que RTLD_GLOBAL debe usarse para obtener acceso a los símbolos. Esto evita cargar libpython2.xy libpython3.x en el mismo proceso.
¿Qué se puede hacer para habilitar la carga de ambos en la misma sesión?
Opciones que puedo ver:
- Reconstruya los paquetes Python {2,3} para que
RTLD_GLOBAL
(sea lo que sea) no sea necesario. - De alguna manera, carga la biblioteca antes para que Vim la descargue (?!). (¿Es eso posible?)
Para cualquier detalle de la distribución, asuma, en orden creciente de especificidad:
- Basado en Debian
- Ubuntu
- Ubuntu 14.04
- O, Arch Linux, si un sistema basado en Debian es demasiado complejo.
Tenga en cuenta que tengo que construir Vim con soporte de carga dinámica para ambos, por lo que construir Vim no es un problema.
fuente
vim-runtime
paquete, que tienenvim
,gvim
,vim-python3
ygvim-python3
. La única diferencia entre el-python3
y los paquetes normales es la versión de Python habilitada. Claro, duplica la cantidad de paquetes frontend, pero esa es toda la falla que veo en ese empaque.vim-nox
,vim-gtk
,vim-gnome
, yvim-athena
. Duplicarlos solo para que los usuarios aún no puedan usar los complementos Python y Python3 no parece valer la pena.Ubuntu 16.04 ahora tiene
vim-*-py2
paquetes incluidos en el repositorio. Esto significa que todos los usuarios de Debian Vim pueden migrar a Ubuntu si es necesario.Los
vim-*
paquetes anteriores ahora proporcionan+python3
, y los binarios se nombran de manera diferente para evitar conflictos:vim.nox
paravim-nox
y+python3
vim.nox-py2
paravim-nox-py2
y+python
Y así.
fuente