** Description changed:

  Tested on my coding host and in a clean LXD ubuntu:16.04 container.
+ Testing in a LXD 17.10 container it works as expected.
  
  # apt install vim-youcompleteme
  # vam install youcompleteme
  
  # vim test.py
  
  As soon as I try to begin editing multiple (15+) errors are generated,
  filing the window, each requiring Enter to be pressed to continue.
  
  Makes vim unusable.
  
  Apparently this is due to vim-nox being built with +python3 -python but,
  despite the Depends: on vim-youcompleteme package being for python3, it
  calls 16.04's default python interpreter which is python2.
  
  A workaround for this is:
  
  # echo "let g:ycm_server_python_interpreter = '/usr/bin/python2'" >>
  ~/.vimrc
  
  Now vim is usable with no errors.
  
  However, there is no autocomplete function working.
  
  Starting with:
  
  # vim -V9 test.py
  
  reveals the error:
  
  Press ENTER or type command to continueTraceback (most recent call last):
-    File "/usr/lib/ycmd/check_core_version.py", line 21, in <module>
-                                                                               
                                                                 import ycm_core
-                                                                               
                                                                                
ImportError: dynamic module does not define module export function 
(PyInit_ycm_core)
+    File "/usr/lib/ycmd/check_core_version.py", line 21, in <module>
+                                                                               
                                                                 import ycm_core
+                                                                               
                                                                                
ImportError: dynamic module does not define module export function 
(PyInit_ycm_core)
  
  
- Testing in a LXD 17.10 container it works as expected.
+ This is because Python 3.x C/C++ extension modules (shared libraries)
+ have a different calling convention to that of Python 2.x and must
+ export certain functions, amongst them:
+ 
+  PyObject* PyInit_modulename(void)
+ 
+ see https://docs.python.org/3/extending/building.html
+ 
+ Because the vim-youcomepleteme package was simply rebuilt for Python3
+ the changes required to support Python3 extensions were not added.
+ 
+ This makes the entire vim-youcompletme package pointless in Debian and
+ Ubuntu.

** Summary changed:

- [16.04] no autocomplete and multiple errors due to not using python3 as the 
default interpreter
+ [16.04] no autocomplete and multiple errors due to not using python3 
interpreter or extension calling conventions

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1730731

Title:
  [16.04] no autocomplete and multiple errors due to not using python3
  interpreter or extension calling conventions

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/vim-youcompleteme/+bug/1730731/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to