在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
- 或者,如果基于Debian的系统过于复杂,则使用Arch Linux。
请注意,我已经为Vim构建了动态加载支持,因此构建Vim并不是问题。