系统:OS X EI Capitan emacs版本:25.2.1 配置: (setq python-shell-interpreter “/usr/local/bin/python3”)
(add-hook 'python-mode-hook 'anaconda-mode)
(add-hook 'python-mode-hook (lambda () (set (make-local-variable 'company-backends) '((company-anaconda company-dabbrev-code) company-dabbrev))))
测试了sys,os pandas,matolotlib,difflib,scipy,gzip等库都可以自动补全,只有numpy无法补全。
报错代码:
anaconda_mode port 50876
127.0.0.1 - - [20/Jun/2017 03:44:12] ================================================================================
Traceback (most recent call last):
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/service_factory-0.1.5-py3.5.egg/service_factory/service.py”, line 101, in apply
result = method(**params)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/anaconda_mode-0.1.8-py3.5.egg/anaconda_mode.py”, line 27, in wrapper
return f(Script(source, line, column, path))
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/anaconda_mode-0.1.8-py3.5.egg/anaconda_mode.py”, line 49, in wrapper
for definition in f(script)]
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/anaconda_mode-0.1.8-py3.5.egg/anaconda_mode.py”, line 49, in
for definition in f(script)]
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/api/classes.py”, line 501, in type
followed = self.follow_definition()
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper
rv = function(obj, *args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/api/classes.py”, line 533, in follow_definition
defs = self._follow_statements_imports()
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper
rv = function(obj, *args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/api/classes.py”, line 521, in _follow_statements_imports
return super(Completion, self)._follow_statements_imports()
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper
rv = function(obj, *args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/api/classes.py”, line 326, in _follow_statements_imports
return imports.follow_imports(self._evaluator, [stripped])
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/imports.py”, line 482, in follow_imports
for r in ImportWrapper(evaluator, s).follow():
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/imports.py”, line 203, in follow
for s in scopes))
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/imports.py”, line 203, in
for s in scopes))
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 260, in follow_path
fp = self._follow_path(iter_paths[i], typ, call_scope)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 308, in _follow_path
types = self.find_types(typ, current)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 113, in find_types
return f.find(scopes, resolve_decorator, search_global)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper
result = func(*args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 47, in find
types = self._names_to_types(names, resolve_decorator)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 232, in _names_to_types
typ = typ.get_decorated_func()
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/representation.py”, line 386, in get_decorated_func
return self._decorated_func()
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper
rv = function(obj, *args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/representation.py”, line 362, in _decorated_func
wrappers = self._evaluator.execute(decorator, (old_func,))
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper
result = func(*args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 336, in execute
stmts = er.FunctionExecution(self, obj, params).get_return_types(evaluate_generator)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper
rv = function(obj, *args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/recursion.py”, line 108, in run
result = func(execution, evaluate_generator)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/representation.py”, line 437, in get_return_types
stmts += self._evaluator.eval_statement®
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper
rv = function(obj, *args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/recursion.py”, line 24, in run
result = func(evaluator, stmt, *args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper
result = func(*args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 132, in eval_statement
result = self.eval_expression_list(expression_list)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 170, in eval_expression_list
return self.process_precedence_element§ or []
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 180, in process_precedence_element
return self.eval_statement_element(el)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 215, in eval_statement_element
return self.eval_call(element)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 226, in eval_call
return self.eval_call_path(path, par, s.start_pos)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 240, in eval_call_path
search_global=True)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 113, in find_types
return f.find(scopes, resolve_decorator, search_global)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper
result = func(*args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 47, in find
types = self._names_to_types(names, resolve_decorator)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 232, in _names_to_types
typ = typ.get_decorated_func()
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/representation.py”, line 386, in get_decorated_func
return self._decorated_func()
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper
rv = function(obj, *args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/representation.py”, line 362, in _decorated_func
wrappers = self._evaluator.execute(decorator, (old_func,))
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper
result = func(*args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 340, in execute
stmts = obj.execute_subscope_by_name(‘call’, params)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/representation.py”, line 133, in execute_subscope_by_name
return self._evaluator.execute(method, args)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper
result = func(*args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 336, in execute
stmts = er.FunctionExecution(self, obj, params).get_return_types(evaluate_generator)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper
rv = function(obj, *args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/recursion.py”, line 108, in run
result = func(execution, evaluate_generator)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/representation.py”, line 437, in get_return_types
stmts += self._evaluator.eval_statement®
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper
rv = function(obj, *args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/recursion.py”, line 24, in run
result = func(evaluator, stmt, *args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper
result = func(*args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 132, in eval_statement
result = self.eval_expression_list(expression_list)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 170, in eval_expression_list
return self.process_precedence_element§ or []
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 180, in process_precedence_element
return self.eval_statement_element(el)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 215, in eval_statement_element
return self.eval_call(element)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 226, in eval_call
return self.eval_call_path(path, par, s.start_pos)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 240, in eval_call_path
search_global=True)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 113, in find_types
return f.find(scopes, resolve_decorator, search_global)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper
result = func(*args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 47, in find
types = self._names_to_types(names, resolve_decorator)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 222, in _names_to_types
types += self._remove_statements(typ, name)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 260, in _remove_statements
types += evaluator.eval_statement(stmt, seek_name=unicode(self.name_str))
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/cache.py”, line 39, in wrapper
rv = function(obj, *args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/recursion.py”, line 24, in run
result = func(evaluator, stmt, *args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/debug.py”, line 51, in wrapper
result = func(*args, **kwargs)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/init.py”, line 158, in eval_statement
new_result += finder.find_assignments(ass_expression_list[0], result, seek_name)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 563, in find_assignments
return _assign_tuples(lhs, results, seek_name)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 544, in _assign_tuples
result += find_assignments(command, r, seek_name)
File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/jedi/evaluate/finder.py”, line 564, in find_assignments
elif unicode(lhs.name.names[-1]) == seek_name:
AttributeError: ‘Operator’ object has no attribute ‘name’
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/service_factory-0.1.5-py3.5.egg/service_factory/providers/basehttp.py”, line 40, in do_POST status, response = self.server.service(data) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/service_factory-0.1.5-py3.5.egg/service_factory/service.py”, line 50, in call result = self.apply(method, args) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/service_factory-0.1.5-py3.5.egg/service_factory/service.py”, line 105, in apply server_error(args[‘id’], error) File “/Users/arlenx/.emacs.d/anaconda-mode/0.1.8/service_factory-0.1.5-py3.5.egg/service_factory/errors.py”, line 91, in server_error raise ServiceException(500, dumps(response)) service_factory.exceptions.ServiceException: (500, ‘{“jsonrpc”: “2.0”, “id”: 1, “error”: {“code”: -32000, “message”: “Server error”, “data”: “AttributeError(\”‘Operator’ object has no attribute ‘name’\",)"}}’)