Sur les systèmes Linux, Vim empaqueté en a généralement un seul python
ou python3
activé. Il est possible d'activer les deux (à l'aide de python/dyn
et python3/dyn
), mais pendant une session, une seule peut être utilisée. Cette discussion sur la liste de diffusion a dit :
Cela dépend de la façon dont les bibliothèques Python sont construites. Sur les systèmes basés sur Debian (pour des raisons dont je ne me souviens pas par inadvertance), ils sont construits de telle sorte que RTLD_GLOBAL doit être utilisé pour accéder aux symboles. Cela empêche le chargement de libpython2.x et libpython3.x dans le même processus.
Que peut-on faire pour activer le chargement des deux dans la même session?
Options que je peux voir:
- Reconstruisez les packages Python {2,3} afin que
RTLD_GLOBAL
(quoi que ce soit) ne soit pas nécessaire. - D'une manière ou d'une autre, la bibliothèque est chargée plus tôt pour être déchargée (?!) Par Vim. (Est-ce que c'est possible?)
Pour tout détail de la distribution, supposons, par ordre croissant de spécificité:
- Basé sur Debian
- Ubuntu
- Ubuntu 14.04
- Ou, Arch Linux, si un système basé sur Debian est trop complexe.
Notez que j'ai Vim à construire avec un support de chargement dynamique pour les deux, donc la construction de Vim n'est pas un problème.
vim-runtime
ensemble, ils ontvim
,gvim
,vim-python3
etgvim-python3
. La seule différence entre le-python3
et les packages normaux est la version de Python activée. Bien sûr, cela double le nombre de packages frontaux, mais c'est tout le défaut que je vois dans un tel emballage.vim-nox
,vim-gtk
,vim-gnome
etvim-athena
. Les doubler juste pour que les utilisateurs ne puissent toujours pas utiliser les plugins Python et Python3 ne semble pas utile.Ubuntu 16.04 a maintenant des
vim-*-py2
packages inclus dans le repo. Cela signifie que tous les utilisateurs de Debian Vim peuvent migrer vers Ubuntu si nécessaire.Les anciens
vim-*
paquets fournissent maintenant+python3
, et les binaires sont nommés différemment pour éviter les conflits:vim.nox
pourvim-nox
et+python3
vim.nox-py2
pourvim-nox-py2
et+python
Etc.
la source