srusskih / SublimeJEDI

awesome Python autocompletion with SublimeText
MIT License
938 stars 109 forks source link

SublimeJEDI doesn't work after install #303

Closed ianklatzco closed 4 years ago

ianklatzco commented 4 years ago

Linux, installed from package control on a fairly recent (<3mo old) sublime. Throws the following traceback in sublime console as soon as you start typing. I suspect it might be a python2/3 thing.

Traceback (most recent call last):
  File "/opt/sublime_text/sublime_plugin.py", line 701, in on_query_completions
    res = vel.on_query_completions(prefix, locations)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/sublime_jedi/completion.py", line 167, in on_query_completions
    cplns = [tuple(x) for x in self._sort_completions(cplns)]
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/sublime_jedi/completion.py", line 183, in _sort_completions
    key=lambda x: (
TypeError: 'NoneType' object is not iterable
`JediFacade.get_autocomplete` failed
Traceback (most recent call last):
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/gradual/typeshed.py", line 92, in wrapper
    python_context_set = evaluator.module_cache.get(import_names)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/imports.py", line 50, in get
    return self._name_cache[string_names]
KeyError: ('builtins',)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/sublime_jedi/facade.py", line 112, in get
    return getattr(self, 'get_' + _action)(*args, **kwargs)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/sublime_jedi/facade.py", line 140, in get_autocomplete
    return list(unique(completions, itemgetter(0)))
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/sublime_jedi/utils.py", line 212, in unique
    for i in items:
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/sublime_jedi/facade.py", line 168, in _completion
    completions = self.script.completions()
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/api/__init__.py", line 216, in completions
    return completion.completions()
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/api/completion.py", line 99, in completions
    completion_names = self._get_context_completions()
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/api/completion.py", line 177, in _get_context_completions
    completion_names += self._get_keyword_completion_names(allowed_transitions)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/api/completion.py", line 221, in _get_keyword_completion_names
    yield keywords.KeywordName(self._evaluator, k)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/api/keywords.py", line 29, in __init__
    self.parent_context = evaluator.builtins_module
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/cache.py", line 42, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/__init__.py", line 147, in builtins_module
    builtins_module, = self.import_module((module_name,), sys_path=())
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/__init__.py", line 139, in import_module
    sys_path, prefer_stubs=prefer_stubs)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/plugins/flask.py", line 24, in wrapper
    return callback(evaluator, import_names, module_context, *args, **kwargs)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/gradual/typeshed.py", line 110, in wrapper
    for p in parent_module_contexts
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/common/context.py", line 32, in from_sets
    for set_ in sets:
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/gradual/typeshed.py", line 110, in <genexpr>
    for p in parent_module_contexts
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/imports.py", line 393, in import_module
    is_global_search=True,
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/compiled/subprocess/__init__.py", line 122, in wrapper
    kwargs=kwargs,
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/compiled/subprocess/__init__.py", line 216, in run
    self._send(evaluator_id, None)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/compiled/subprocess/__init__.py", line 238, in _send
    pickle_dump(data, self._get_process().stdin, self._pickle_protocol)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/_compatibility.py", line 509, in pickle_dump
    file.flush()
OSError: [Errno 9] Bad file descriptor
ianklatzco commented 4 years ago

Here's a slightly more verbose log (with logging control enabled)

Logging level set to DEBUG
06:39:09 INFO  Logging Control.logging_control:354                  run() Logging level set to DEBUG
06:39:11 INFO  NeoVintageous.nv.commands:469                  run() key evt: i repeat_count=None do_eval=True check_user_mappings=True
06:39:11 DEBUG NeoVintageous.nv.commands:501            _feed_key() mode: mode_normal
06:39:11 DEBUG NeoVintageous.nv.state:156             sequence() sequence >>>i<<<
06:39:11 DEBUG NeoVintageous.nv.state:169     partial_sequence() partial sequence >>>i<<<
06:39:11 DEBUG NeoVintageous.nv.mappings:164     mappings_resolve() resolved None None -> <ViEnterInserMode> (<class 'NeoVintageous.nv.vi.cmd_defs.ViEnterInserMode'>, <class 'NeoVintageous.nv.vi.cmd_base.ViOperatorDef'>, <class 'NeoVintageous.nv.vi.cmd_base.ViCommandDefBase'>, <class 'object'>)
06:39:11 DEBUG NeoVintageous.nv.state:688                 eval() is NORMAL, changing to INTERNAL_NORMAL...
06:39:11 DEBUG NeoVintageous.nv.state:692                 eval() action has a mode, changing to INTERNAL_NORMAL...
06:39:11 INFO  NeoVintageous.nv.vim:101   run_window_command() command: mark_undo_groups_for_gluing None
06:39:11 INFO  NeoVintageous.nv.vim:116           run_action() command (action): {'action': '_enter_insert_mode', 'action_args': {'count': 1, 'mode': 'mode_internal_normal'}}
06:39:11 DEBUG NeoVintageous.nv.commands:1355                 run() enter INSERT mode from=mode_internal_normal, count=1
06:39:11 DEBUG NeoVintageous.nv.state:156             sequence() sequence >>><<<
06:39:11 DEBUG NeoVintageous.nv.state:169     partial_sequence() partial sequence >>><<<
06:39:11 DEBUG NeoVintageous.nv.commands:485                  run() key evt took 0.0145s (key=i repeat_count=None do_eval=True check_user_mappings=True)
06:39:18 INFO  Jedi - Python autocompletion.sublime_jedi.completion:146 on_query_completions() JEDI completion triggered.
06:39:18 INFO  Jedi - Python autocompletion.sublime_jedi.completion:165 on_query_completions() Completion completed.
Traceback (most recent call last):
  File "/opt/sublime_text/sublime_plugin.py", line 701, in on_query_completions
    res = vel.on_query_completions(prefix, locations)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/sublime_jedi/completion.py", line 167, in on_query_completions
    cplns = [tuple(x) for x in self._sort_completions(cplns)]
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/sublime_jedi/completion.py", line 183, in _sort_completions
    key=lambda x: (
TypeError: 'NoneType' object is not iterable
06:39:18 INFO  Jedi - Python autocompletion.sublime_jedi.daemon:171              request() Sending request to daemon for "autocomplete"
06:39:18 DEBUG Jedi - Python autocompletion.sublime_jedi.daemon:172              request() ('autocomplete', {}, '/home/ian/Dropbox/code/learning/python/learning_requests/tmp.py', 3, 1)
06:39:18 DEBUG    parso.python.diff:213               update() diff parser start
06:39:18 DEBUG    parso.python.diff:224               update() line_lengths old: 4; new: 4
06:39:18 DEBUG    parso.python.diff:228               update() -> code[equal] old[1:3] new[1:3]
06:39:18 DEBUG    parso.python.diff:299 _copy_from_old_parser() copy old[1:3] new[1:3]
06:39:18 DEBUG    parso.python.diff:228               update() -> code[replace] old[4:4] new[4:4]
06:39:18 DEBUG    parso.python.diff:341               _parse() parse_part from 4 to 4 (to 3 in part parser)
06:39:18 DEBUG    parso.python.diff:264               update() diff parser end
06:39:18 ERROR Jedi - Python autocompletion.sublime_jedi.facade:1273           exception() `JediFacade.get_autocomplete` failed
Traceback (most recent call last):
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/gradual/typeshed.py", line 92, in wrapper
    python_context_set = evaluator.module_cache.get(import_names)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/imports.py", line 50, in get
    return self._name_cache[string_names]
KeyError: ('builtins',)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/sublime_jedi/facade.py", line 112, in get
    return getattr(self, 'get_' + _action)(*args, **kwargs)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/sublime_jedi/facade.py", line 140, in get_autocomplete
    return list(unique(completions, itemgetter(0)))
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/sublime_jedi/utils.py", line 212, in unique
    for i in items:
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/sublime_jedi/facade.py", line 168, in _completion
    completions = self.script.completions()
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/api/__init__.py", line 216, in completions
    return completion.completions()
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/api/completion.py", line 99, in completions
    completion_names = self._get_context_completions()
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/api/completion.py", line 177, in _get_context_completions
    completion_names += self._get_keyword_completion_names(allowed_transitions)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/api/completion.py", line 221, in _get_keyword_completion_names
    yield keywords.KeywordName(self._evaluator, k)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/api/keywords.py", line 29, in __init__
    self.parent_context = evaluator.builtins_module
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/cache.py", line 42, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/__init__.py", line 147, in builtins_module
    builtins_module, = self.import_module((module_name,), sys_path=())
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/__init__.py", line 139, in import_module
    sys_path, prefer_stubs=prefer_stubs)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/plugins/flask.py", line 24, in wrapper
    return callback(evaluator, import_names, module_context, *args, **kwargs)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/gradual/typeshed.py", line 110, in wrapper
    for p in parent_module_contexts
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/common/context.py", line 32, in from_sets
    for set_ in sets:
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/gradual/typeshed.py", line 110, in <genexpr>
    for p in parent_module_contexts
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/imports.py", line 393, in import_module
    is_global_search=True,
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/compiled/subprocess/__init__.py", line 122, in wrapper
    kwargs=kwargs,
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/compiled/subprocess/__init__.py", line 216, in run
    self._send(evaluator_id, None)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/evaluate/compiled/subprocess/__init__.py", line 238, in _send
    pickle_dump(data, self._get_process().stdin, self._pickle_protocol)
  File "/home/ian/.config/sublime-text-3/Packages/Jedi - Python autocompletion/dependencies/jedi/_compatibility.py", line 509, in pickle_dump
    file.flush()
OSError: [Errno 9] Bad file descriptor
06:39:18 DEBUG Jedi - Python autocompletion.sublime_jedi.daemon:185              request() Answer: None
ianklatzco commented 4 years ago

Hm. Works after restarting Sublime. Maybe that's all it needed? Probably should tried that first, haha.

srusskih commented 4 years ago

👍