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.

Raspunde prin e-mail lui