I'm not sure if this is a vim issue or a python 3.7 issue.

I have compiled both vim and python 3.7 from source. Whenever 
I try to execute a python3 block in a vim script I get the following crash: 


```
Fatal Python error: PyThreadState_Get: no current thread

Vim: Caught deadly signal ABRT
Vim: Finished.
Aborted (core dumped)
```

Doing some googling I find that this question has been asked in the context of 
YouCompleteMe and MacVim, but I'm on Ubuntu 16.04 and I'm not using any 
plugins. I do have multiple versions of python and vim on my system, so I'm 
wondering if libraries might potentially be getting confused. I'll do my best 
to explain my setup. 


Because I'm on Ubuntu 16.04 I have python3.5 installed to the system (in 
/usr/bin/python3.5). I want to upgrade to 3.7, so I decided I would install 
that locally to override the system default. So, I cloned the source and 
installed a new build into ~/.local. 

Here is how I installed python 3.7
```
cd ~/code
git clone https://github.com/python/cpython.git

export NCPUS=$(grep -c ^processor /proc/cpuinfo)
export PREFIX=$HOME/.local
cd ~/code/cpython

./configure --prefix=$PREFIX --exec-prefix=$PREFIX \
    --enable-shared --enable-ipv6 --enable-loadable-sqlite-extensions 
--with-fpectl \
    --with-dbmliborder=bdb:gdbm --with-computed-gotos --with-ensurepip 
--with-threads \
    'CFLAGS=-g -fstack-protector-strong -Wformat -Werror=format-security ' \
    'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro' \
    'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' 

make -j$NCPUS
make install
```
This build seems to work fine for all my normal python use-cases (except when 
it comes to vim-scripts).


Then I did the same for vim. 

```
git clone https://github.com/vim/vim.git
cd ~/code/vim
./configure \
        --prefix=$HOME/.local \
        --enable-pythoninterp=no \
        --enable-python3interp=yes \
        --with-python3-config-dir=$(python3.7-config --configdir) \
        --enable-gui=gtk3
cat src/auto/config.mk | grep PYTHON3
make -j9

```
Note, I have previously built vim to target the system python3.5 and everything 
works fine, but when linking to 3.7 I encounter a problem. I made a test file:

```
python3 << EOF
import sys
print('hello')
EOF
```
And when I run this test `./src/vim -u NONE --cmd "source test.vim"`  after 
building vim. I get the PyThreadState_Get error. If I revert back to my old vim 
build (which was linked to python 3.5) the test correctly prints hello.


So, I'm at a bit of a loss as to what could be going wrong. For now I'm just 
going to have to switch back to 3.5, because I depend heavily on having python 
scripting in my vimrc. For additional information here are my envvars and the 
vim and python specs: 

```
PATH=/home/joncrall/.local/bin:/home/joncrall/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/joncrall/scripts

LD_LIBRARY_PATH=/home/joncrall/.local/lib:/usr/local/lib

./src/vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Mar 27 2017 10:35:20)
Included patches: 1-514
Compiled by joncrall@hyrule
Huge version with GTK3 GUI.  Features included (+) or not (-):
+acl             +file_in_path    +mouse_sgr       +tag_old_static
+arabic          +find_in_path    -mouse_sysmouse  -tag_any_white
+autocmd         +float           +mouse_urxvt     -tcl
+balloon_eval    +folding         +mouse_xterm     +termguicolors
+browse          -footer          +multi_byte      +terminfo
++builtin_terms  +fork()          +multi_lang      +termresponse
+byte_offset     +gettext         -mzscheme        +textobjects
+channel         -hangul_input    +netbeans_intg   +timers
+cindent         +iconv           +num64           +title
+clientserver    +insert_expand   +packages        +toolbar
+clipboard       +job             +path_extra      +user_commands
+cmdline_compl   +jumplist        -perl            +vertsplit
+cmdline_hist    +keymap          +persistent_undo +virtualedit
+cmdline_info    +lambda          +postscript      +visual
+comments        +langmap         +printer         +visualextra
+conceal         +libcall         +profile         +viminfo
+cryptv          +linebreak       -python          +vreplace
+cscope          +lispindent      +python3         +wildignore
+cursorbind      +listcmds        +quickfix        +wildmenu
+cursorshape     +localmap        +reltime         +windows
+dialog_con_gui  -lua             +rightleft       +writebackup
+diff            +menu            -ruby            +X11
+digraphs        +mksession       +scrollbind      -xfontset
+dnd             +modify_fname    +signs           +xim
-ebcdic          +mouse           +smartindent     +xpm
+emacs_tags      +mouseshape      +startuptime     +xsmp_interact
+eval            +mouse_dec       +statusline      +xterm_clipboard
+ex_extra        +mouse_gpm       -sun_workshop    -xterm_save
+extra_search    -mouse_jsbterm   +syntax          
+farsi           +mouse_netterm   +tag_binary      
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/home/joncrall/.local/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread 
-I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 
-I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include 
-I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/mirclient 
-I/usr/include/mircommon -I/usr/include/mircookie -I/usr/include/cairo 
-I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 
-I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 
-I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gdk-pixbuf-2.0 
-I/usr/include/libpng12 -I/usr/include/glib-2.0 
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2 -U_FORTIFY_SOURCE 
-D_FORTIFY_SOURCE=1       
Linking: gcc   -L/usr/local/lib -Wl,--as-needed -o vim   -lgtk-3 -lgdk-3 
-lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 
-lgio-2.0 -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM 
-lICE  -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl     
-L/home/joncrall/.local/lib/python3.7/config-3.7m-x86_64-linux-gnu -lpython3.7m 
-lpthread -ldl -lutil -lm      


```


I'd really appreciate any insight into whats going on. Let me know if I need to 
provide more info. 

-- 
-- 
You received this message from the "vim_use" 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_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_use+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to