Here is a followup for this discussion at Arch Linux forum
https://bbs.archlinux.org/viewtopic.php?id=210968
Arch recently switched to dynamic language bindings to support both python2 and
python3 by the same package. It works great except a few use-cases. It turned
out that some python packages (like python-dbus) do not link their packages to
python shared library:
$ ldd /usr/lib/python2.7/site-packages/_dbus_bindings.so | grep python
# compare it to yaml library:
$ ldd /usr/lib/python2.7/site-packages/_yaml.so | grep python
libpython2.7.so.1.0 => /usr/lib/libpython2.7.so.1.0 (0x00007ffa53d88000)
I am not a python guru and not sure why it is done. Does anybody know why it is
not linked to libpython2.7.so?
But this enough for vim to crash when this package is loading:
:py import dbus
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/dbus/__init__.py", line 77, in <module>
import dbus.types as types
File "/usr/lib/python2.7/site-packages/dbus/types.py", line 6, in <module>
from _dbus_bindings import (
ImportError: /usr/lib/python2.7/site-packages/_dbus_bindings.so: undefined
symbol: PyExc_KeyboardInterrupt
This behavior is different from static language bindings where (it seems)
python libraries are loaded into namespace by vim itself.
What is the right way to resolve it? Should vim preload python libraries when
the language binding is used? Or all python libraries should be linked to
libpython2.7.so?
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.