question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

UnpicklingError when jedi-vim tries to get vim version info

See original GitHub issue

Issue

When I try to run a jedi command (e.g. <leader>d), I just get a stack trace. The most relevant line seems to be:

jedi.api.environment.InvalidPythonEnvironment: Could not get version information for '/usr/local/bin/vim': UnpicklingError("invalid load key, '3'.")

Full stack trace:

Traceback (most recent call last):
  File "/Users/michael.hoyle/.vim/bundle/jedi-vim/pythonx/jedi/jedi/api/environment.py", line 74, in _get_subprocess
    info = self._subprocess._send(None, _get_info)
  File "/Users/michael.hoyle/.vim/bundle/jedi-vim/pythonx/jedi/jedi/evaluate/compiled/subprocess/__init__.py", line 242, in _send
    is_exception, traceback, result = pickle_load(self._process.stdout)
  File "/Users/michael.hoyle/.vim/bundle/jedi-vim/pythonx/jedi/jedi/_compatibility.py", line 464, in pickle_load
    return pickle.load(file, encoding='bytes')
_pickle.UnpicklingError: invalid load key, '3'.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/Users/michael.hoyle/.vim/bundle/jedi-vim/pythonx/jedi_vim.py", line 140, in wrapper
    return func(*args, **kwargs)
  File "/Users/michael.hoyle/.vim/bundle/jedi-vim/pythonx/jedi_vim.py", line 220, in get_script
    environment=get_environment(),
  File "/Users/michael.hoyle/.vim/bundle/jedi-vim/pythonx/jedi/jedi/api/__init__.py", line 108, in __init__
    project, environment=environment, script_path=self.path
  File "/Users/michael.hoyle/.vim/bundle/jedi-vim/pythonx/jedi/jedi/evaluate/__init__.py", line 94, in __init__
    self.compiled_subprocess = environment.get_evaluator_subprocess(self)
  File "/Users/michael.hoyle/.vim/bundle/jedi-vim/pythonx/jedi/jedi/api/environment.py", line 113, in get_evaluator_subprocess
    return EvaluatorSubprocess(evaluator, self._get_subprocess())
  File "/Users/michael.hoyle/.vim/bundle/jedi-vim/pythonx/jedi/jedi/api/environment.py", line 79, in _get_subprocess
    exc))
jedi.api.environment.InvalidPythonEnvironment: Could not get version information for '/usr/local/bin/vim': UnpicklingError("invalid load key, '3'.")
Traceback (most recent call last):
  File "/Users/michael.hoyle/.vim/bundle/jedi-vim/pythonx/jedi_vim.py", line 140, in wrapper
    return func(*args, **kwargs)
  File "/Users/michael.hoyle/.vim/bundle/jedi-vim/pythonx/jedi_vim.py", line 302, in goto
    definitions = script.goto_assignments(follow_imports=True)
AttributeError: 'NoneType' object has no attribute 'goto_assignments'

Steps to reproduce

Load a python script Move cursor over an identifier do \d

set nocompatible

let script_dir = fnamemodify(expand('<sfile>'), ':h')
let &runtimepath .= ','.script_dir.','.script_dir.'/after'

" Put your config changes here.
" let g:jedi#show_call_signatures=1

syntax on
filetype plugin indent on

minimal.vimrc:

set nocompatible

let script_dir = fnamemodify(expand('<sfile>'), ':h')
let &runtimepath .= ','.script_dir.','.script_dir.'/after'

set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'gmarik/Vundle.vim'                "required
Plugin 'davidhalter/jedi-vim'

call vundle#end()            " required

" Put your config changes here.
let g:jedi#show_call_signatures=1

syntax on
filetype plugin indent on

Jedi-vim debug information

jedi-vim version
  • jedi-vim git version: 0.9.0-61-g2f65c63-dirty
  • jedi git submodule status: bd1010bbd2693f189ff780eb21fc4294071cb280 pythonx/jedi (v0.13.1)
  • parso git submodule status: 930ec08ab0cd77aae07e24aa78f9c5119be216bb pythonx/parso (v0.3.1-7-g930ec08)
Global Python

Using Python version 3 to access Jedi.

  • global sys.version: 3.7.1 (default, Nov 6 2018, 18:49:54), [Clang 9.0.0 (clang-900.0.39.2)]
  • global site module: /usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site.py
Jedi
  • path: /Users/michael.hoyle/.vim/bundle/jedi-vim/pythonx/jedi/jedi/__init__.py
  • version: 0.13.1
Jedi environment: <SameEnvironment: 3.7.1 in /usr/local/opt/python/Frameworks/Python.framework/Versions/3.7>
  • executable: /usr/local/bin/vim ERROR: failed to get sys path from environment: jedi.api.environment.InvalidPythonEnvironment: Could not get version information for ‘/usr/local/bin/vim’: UnpicklingError(“invalid load key, ‘3’.”) Traceback (most recent call last): File “/Users/michael.hoyle/.vim/bundle/jedi-vim/pythonx/jedi_vim_debug.py”, line 71, in display_debug_info sys_path = environment.get_sys_path() File “/Users/michael.hoyle/.vim/bundle/jedi-vim/pythonx/jedi/jedi/cache.py”, line 143, in wrapper result = method(self, *args, **kwargs) File “/Users/michael.hoyle/.vim/bundle/jedi-vim/pythonx/jedi/jedi/api/environment.py”, line 128, in get_sys_path return self._get_subprocess().get_sys_path() File “/Users/michael.hoyle/.vim/bundle/jedi-vim/pythonx/jedi/jedi/api/environment.py”, line 79, in _get_subprocess exc))
Settings
  omnifunc=jedi#completions
	Last set from ~/.vim/bundle/jedi-vim/autoload/jedi.vim line 612
  completeopt=menuone,longest,preview
	Last set from ~/.vim/bundle/jedi-vim/plugin/jedi.vim line 31

:version


VIM - Vi IMproved 8.1 (2018 May 18, compiled Oct 29 2018 06:57:16)
macOS version
Included patches: 1-500
Compiled by Homebrew
Huge version without GUI.  Features included (+) or not (-):
+acl               ++builtin_terms    +cmdline_info      +diff              +farsi             -hangul_input      +libcall           +modify_fname      -mouse_sysmouse    +packages          +python3           +startuptime       +termguicolors     +user_commands     +wildignore        -xsmp
+arabic            +byte_offset       +comments          +digraphs          +file_in_path      +iconv             +linebreak         +mouse             +mouse_urxvt       +path_extra        +quickfix          +statusline        +terminal          +vartabs           +wildmenu          -xterm_clipboard
+autocmd           +channel           +conceal           -dnd               +find_in_path      +insert_expand     +lispindent        -mouseshape        +mouse_xterm       +perl              +reltime           -sun_workshop      +terminfo          +vertsplit         +windows           -xterm_save
+autochdir         +cindent           +cryptv            -ebcdic            +float             +job               +listcmds          +mouse_dec         +multi_byte        +persistent_undo   +rightleft         +syntax            +termresponse      +virtualedit       +writebackup       
-autoservername    -clientserver      +cscope            +emacs_tags        +folding           +jumplist          +localmap          -mouse_gpm         +multi_lang        +postscript        +ruby              +tag_binary        +textobjects       +visual            -X11               
-balloon_eval      +clipboard         +cursorbind        +eval              -footer            +keymap            -lua               -mouse_jsbterm     -mzscheme          +printer           +scrollbind        +tag_old_static    +timers            +visualextra       -xfontset          
+balloon_eval_term +cmdline_compl     +cursorshape       +ex_extra          +fork()            +lambda            +menu              +mouse_netterm     +netbeans_intg     +profile           +signs             -tag_any_white     +title             +viminfo           -xim               
-browse            +cmdline_hist      +dialog_con        +extra_search      -gettext           +langmap           +mksession         +mouse_sgr         +num64             -python            +smartindent       -tcl               -toolbar           +vreplace          -xpm               
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/usr/local/share/vim"
Compilation: clang -c -I. -Iproto -DHAVE_CONFIG_H   -DMACOS_X -DMACOS_X_DARWIN  -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1       
Linking: clang   -L. -fstack-protector -L/usr/local/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib  -L/usr/local/lib -o vim        -lncurses -liconv -framework AppKit   -mmacosx-version-min=10.12 -fstack-protector-strong -L/usr/local/lib  -L/usr/local/Cellar/perl/5.28.0/lib/perl5/5.28.0/darwin-thread-multi-2level/CORE -lperl -lm -lutil -lc  -L/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin -lpython3.7m -framework CoreFoundation  -lruby.2.5.3 -lobjc    

:messages

Messages maintainer: Bram Moolenaar <Bram@vim.org>
"impact_service/impacts/models.py" 15L, 327C
:scriptnames
  1: ~/platform-impact-service/minimal.vimrc
  2: ~/.vim/bundle/Vundle.vim/autoload/vundle.vim
  3: ~/.vim/bundle/Vundle.vim/autoload/vundle/config.vim
  4: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/syntax/syntax.vim
  5: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/syntax/synload.vim
  6: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/syntax/syncolor.vim
  7: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/filetype.vim
  8: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/ftplugin.vim
  9: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/indent.vim
 10: ~/.vim/bundle/jedi-vim/plugin/jedi.vim
 11: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/plugin/getscriptPlugin.vim
 12: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/plugin/gzip.vim
 13: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/plugin/logiPat.vim
 14: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/plugin/manpager.vim
 15: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/plugin/matchparen.vim
 16: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/plugin/netrwPlugin.vim
 17: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/plugin/rrhelper.vim
 18: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/plugin/spellfile.vim
 19: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/plugin/tarPlugin.vim
 20: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/plugin/tohtml.vim
 21: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/plugin/vimballPlugin.vim
 22: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/plugin/zipPlugin.vim
 23: ~/unix-setup/vim/syntax/python.vim
 24: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/syntax/python.vim
 25: ~/.vim/bundle/jedi-vim/after/syntax/python.vim
 26: ~/.vim/bundle/jedi-vim/autoload/jedi.vim
 27: ~/.vim/bundle/jedi-vim/ftplugin/python/jedi.vim
 28: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/ftplugin/python.vim
 29: ~/unix-setup/vim/after/ftplugin/python.vim
 30: ~/.vim/bundle/jedi-vim/after/ftplugin/python/jedi.vim
 31: ~/unix-setup/vim/indent/python.vim
 32: /usr/local/Cellar/vim/8.1.0500/share/vim/vim81/indent/python.vim
```

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:22

github_iconTop GitHub Comments

9reactions
dynocommented, Dec 22, 2018

a workaround is in your vimrc, change the executable :py3 sys.executable='/usr/local/bin/python3'

1reaction
blueyedcommented, Nov 29, 2018

@bradwood What is :py3 import sys; print(sys.version_info) in Vim? It appears that your Vim only has Python 3. What does “inside a virtualenv” mean? Vim’s Python should be the same there, so what is different inside/outside a Virtualenv? (i.e. python -V)

Read more comments on GitHub >

github_iconTop Results From Across the Web

Installing jedi-vim fails: vim says wrongly that +python is not ...
Clone Vim repository, compile it and install the new version: ... If I try to install it "again", pip says that jedi is...
Read more >
r/neovim - my autocomplete is not working (with jedi vim) . why ...
(and how can i fix it ) (my neovim version is 0.9 dev) ... and type for example print() , i dont get...
Read more >
jedi-vim - SAGE math with Jedi-Vim | bleepingcoder.com
Is there a way to use a different-than-default interpreter with Jedi-Vim? Currently, none of the sage libraries auto-complete and are not able to...
Read more >
Error detected while processing function jedi#init_python[11 ...
Error: jedi-vim failed to initialize Python: ... OS information: ... To install the vanilla version of jedi-vim and have it available at Vim...
Read more >
python. 类- OSCHINA - 中文开源技术交流社区
Python offers a unique set of tools and language features that help make your ... pip3 install shivyc To create, compile, and run...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found